Darin Downs made his major league debut, striking out one and walking one in a hitless ninth inning, to complete quite a comeback.
He had a fractured skull and brain swelling after getting hit by a line drive while pitching for Tampa Bay's Double-A team in 2009, putting him on the brink of death.
Downs said he didn't think about his journey during the game, when he trotted in from the bullpen and got Twins star Justin Morneau, the first batter he faced, to fly out.
"I just try to focus on the task at hand," he said. "The reflection period is for later on tonight."
Downs got a chance to pitch because scheduled starter Max Scherzer was scratched with an injured left hamstring, leading to a series of roster moves.
"I had a little nerves running out of the bullpen," he said.
Josh Willingham and Trevor Plouffe hit homers in a five-run third and Ryan Doumit had a go-ahead sacrifice fly in the seventh inning, lifting Minnesota to a season-high, five-game winning streak.
"That was a long night, but a huge win for this ballclub," Twins manager Ron Gardenhire said after a 3-hour, 26-minute game and 90-minute rain delay. "Our hitters came through when we needed them and our bullpen was great again."
Joe Mauer had three hits, including a solo homer to lead off the ninth and give the Twins a two-run lead.
"They're swinging the bats pretty good," Detroit manager Jim Leyland said. "They're like everyone else, they'll go as far as their pitching takes them."
Jeff Gray (5-0) gave up only one hit in two innings after starter Nick Blackburn gave up six runs and eight hits over four innings. Kyle Waldrop and Tyler Robertson each pitched another inning of scoreless relief and Glen Perkins worked the ninth for his fourth save in six chances.
Brayan Villarreal (3-2) took the loss by giving up Doumit's sacrifice fly. Duane Below, starting in place of Scherzer, gave up five runs -- one earned -- and five hits in 2 2-3 innings.
"We were fighting an uphill battle all night because of the way our pitching lined up," Leyland said.
Detroit has dropped back-to-back games to the Twins after pulling within a game of .500 with five wins in an eight-game stretch of success.
Minnesota took a 1-0 lead in the first on Willingham's sacrifice fly. Detroit went ahead 3-1 in the second on Ryan Raburn's RBI double and Brennan Boesch's two-run single.
The Tigers lost the lead in in the next inning, giving up five runs with two outs because of four hits, a balk, wild pitch and costly miscue in the field. Detroit shortstop Ramon Santiago had a chance to keep the Twins scoreless in the third, but his fielding error allowed Ben Revere to score and extend the inning.
Willingham followed with his 18th homer and Plouffe, the first to face called-up reliever Jose Ortega, cleared the fences for the 19th time this season go put Minnesota ahead 6-3.
"Plouffe is just unbelievable right now," Gardenhire said. "I don't even know how to describe what he's doing. It seems like he's making at least one fantastic play a night and he had more than one tonight."
Boesch had a solo homer and Austin Jackson followed with a game-tying, two-run shot in the fourth inning.
Following two scoreless innings for both teams, Doumit's fly put the Twins ahead for good in the seventh.
NOTES: The Tigers recalled Ortega from Triple-A Toledo on Tuesday and purchased the contract of Downs from the Mud Hens. They sent RHP Luis Marte and IF Danny Worth to Toledo and designated Toledo OF Matt Young for assignment to make room for Downs on the 40-man roster. ... The Twins optioned RHP Liam Hendriks (0-5, 7.04 ERA) to Triple-A Rochester on Tuesday and recalled RHP Cole De Vries. ... Scherzer, who injured his left hamstring while running on the turf in Tampa, said he fully expects to make his next start Sunday at home against Kansas City. ... The game started after being delayed by rain for 1 hour and 30 minutes.