Brian Dozier gave Minnesota an early lead with a three-run homer in the second, but the Tigers scored five times in the bottom half of the inning to move in front 6-5.
Minnesota tied the score in the third, fell behind again by a run in the fifth and then put on a late-game surge to win for the first time in three outings.
Carroll's double in the sixth gave the Twins an 8-7 lead, Alexi Casilla added an RBI single in the seventh and Trevor Plouffe hit a two-run homer in the ninth to finish the scoring.
It was only the fifth win for Minnesota against Detroit in their last 23 meetings.
The Twins' bullpen gave up a lone run on five hits in the final seven innings with Alex Burnett (1-0) getting the win.
Burnett, who worked an inning, won for just the fifth time in 123 relief appearances scattered over three seasons.
Duane Below (2-1) gave up the go-ahead run in the sixth to take the loss.
Minnesota starter Nick Blackburn allowed six runs in two innings. Detroit's five-run second featured five consecutive singles.
The teams combined for 25 hits and four Detroit errors led to four unearned runs.
Toddler uninjured after being knocked over by Obama family dog
Florida bear attack: Black bear mauls woman's face