The Phillies had forged a 2-2 deadlock in the top of the eighth of the interleague game when Ryan Howard smacked a two-out RBI single against Twins reliever Brian Duensing (1-1), but Minnesota quickly responded in the next half-inning.
That brought up Morneau (3-for-4, two RBI), who bashed a two-strike pitch into center field for a solid hit, easily scoring Carroll with the decisive run.
Glen Perkins fired a 1-2-3 ninth for his 14th save after Twins starter P.J. Walter had held the Phillies to one earned run on six hits over 7 1/3 innings.
Michael Young drove in a run for Philadelphia, which dropped the opener a three-game set.