Austin Jackson hit a three-run home run that finished off a Detroit four-run sixth inning and tied the score 6-6.
Herrmann, who started the scoring with a double that scored Doug Bernier, plugged the gap in right-center with a two-out drive off reliever Bruce Rondon (1-2) that chased Bernier home with the game-winner in the eighth.
Casey Fein (3-2) with one inning of one-hit relief pitched up the win and Glen Perkins, who gave up a hit in the ninth, picked up his 30th save.
The Twins reached Detroit starter Justin Verlander for 10 hits and six runs in seven innings.
Herrmann's first-inning RBI double got the Twins on the board but the Tigers took the lead in the third with Bryan Holaday's first major-league home run and an RBI single by Prince Fielder.
Wilkin Ramirez tied the score for Minnesota in the fourth with an RBI single. The Twins moved out to a 6-2 lead when Ryan Doumit connected for a three-run home run in the fifth and Dozier had a run-scoring double in the sixth.
Holaday had an RBI single before Jackson's home run in the Detroit sixth tied the score 6-6.