DETROIT -- A patient approach and a few long balls energized the Minnesota Twins' offense.
Robbie Grossman added a two-run shot as the Twins (6-3) salvaged the finale of a three-game series.
The Twins scored just 10 runs while dropping three of their previous four games. They set up the long balls by drawing eight walks.
"We haven't probably swung the bats in any of our previous games as well as we did today, collectively," said manager Paul Molitor, whose team got off to an 0-9 start a year ago. "A lot of guys contributed good at-bats and walks were a big part of it. Taking pitches, being patient and then Miggy (Sano) with the big homer and Kepler had a good day, too. We spread it out pretty good."
The Twins took command with Kepler's three-run, fifth-inning homer, his first of the season, and put it away with five runs in the sixth.
"You look across the board, we've really had some great at-bats by everyone, even the young guys," Grossman said. "That's important moving forward."
Phil Hughes (2-0) recorded the win while giving up four runs on five hits over 5 2/3 innings. Justin Haley pitched the last 3 1/3 innings to collect his first career save.
Miguel Cabrera and Justin Upton each hit their first home run of the season and Jose Iglesias drove in two runs for Detroit (6-3). Losing pitcher Jordan Zimmermann (1-1) allowed five runs on four hits and five walks in 4 2/3 innings.
Zimmermann's command problems on the chilly afternoon led to the Tigers' demise.
"He had trouble getting a good grip on the ball," Tigers manager Brad Ausmus said. "I'm sure the wind drying it out didn't help as well. It's just one outing. I'm certainly not concerned."
Detroit still finished 5-2 on its first homestand of the season.
"You win two series -- three out of four against the Red Sox and two out of three from the Twins," Ausmus said. "I know it's a sour note to end the homestand on a loss the way we did but if we win series, we'll be in great shape. I'll take series wins the rest of the way."
Cabrera's first-inning solo blast was his seventh career homer off Hughes, the most long balls he has against any active pitcher. The Tigers extended their franchise record by hitting at least one homer in each of their first nine games.
The Tigers made it 2-0 in the second on Iglesias' run-scoring single to left.
Grossman tied the game at 2-all in the third following a two-out single by Brian Dozier. He lofted a 1-0 Zimmermann pitch just inside the right-field foul pole.
A sudden bout of wildness cost Zimmermann in the fourth, and it could have been worse if Sano hadn't overslid second base after a pitch squirted away from catcher James McCann. Zimmermann walked three in the inning and Eddie Rosario made him pay with a two-out single to knock in Jorge Polanco.
Zimmermann was removed in favor of Anibal Sanchez after issuing two more walks in the fifth. With two out, Kepler crushed Sanchez's second offering into the right-field stands to give the Twins a 6-2 lead.
Minnesota tacked on five runs in the sixth. Joe Mauer had an RBI single just prior to Sano's three-year shot over the center field wall off Sanchez. Chris Giminez's two-out RBI single made it 11-2.
Upton drilled a two-run shot in the bottom of the inning.
NOTES: Twins CF Byron Buxton returned to the lineup after getting benched on Wednesday, save for a pinch-running appearance. His bunt single in the sixth was just his third hit this season. Manager Paul Molitor thought about sitting Buxton another game but ultimately nixed the idea. "I'm not sure one more day would have made a huge difference," he said. ... The Tigers embark on a nine-game road trip, beginning with three games against the reigning American League champions, Cleveland. The Indians had a 14-4 record against Detroit last season. "They manhandled us last year but it's a new year," Tigers manager Brad Ausmus said. ... Tigers 2B Ian Kinsler was not in the lineup as Ausmus opted to give him an early-season rest. Kinsler owns a .194 average in 36 career at-bats against Minnesota starter Phil Hughes. ... Minnesota begins a 10-game homestand on Friday night with a three-game series against the Chicago White Sox. The Twins are 2-1 against the White Sox this season.