DETROIT – The sixth inning this season has been one few Twins starters have entered and even fewer have survived.

Twins starters entered Saturday with the fewest innings thrown and the highest ERA (5.77). That's a big reason the Twins began the day with a 10-game losing streak.

So the rebound on Saturday began on the mound with righthander P.J. Walters, who came up from Class AAA Rochester and helped the Twins beat the Tigers 3-2 at Comerica Park to win for the first time since May 13 against the White Sox.

Walters was poised, unpredictable and workmanlike as he held the Tigers to two runs over six innings on eight hits and a walk while striking out three. Since May 2, Twins starters have completed six innings only six times, so it was time to celebrate.

"He was very good," manager Ron Gardenhire said. "It was a good start. He got us deep into the game, or deep enough."

Walters doesn't throw hard, but he will throw all his pitches and change speeds. His curveball was effective as he held off a Tigers offense that ran the Twins down on Thursday when they had a 6-3 lead late in the game. Miguel Cabrera singled off Walters in his first at-bat, running his hitting streak to 11 games, but Walters got him to ground out in the third and struck out the slugger with two runners on base to end the fifth.

Walters was 2-5 with a 5.69 ERA in 12 starts with the Twins last season before shoulder problems ended his season.

"I wouldn't be [called up] here if there wasn't something going on," Walters said. "My job is to come in and win the game, give my team a chance. I did that today."

The Twins scored three runs off Tigers starter Doug Fister (5-2) in the first inning. Joe Mauer was booed when he stepped to the plate — he broke up Anibal Sanchez's no-hit bid with one out in the ninth the night before — but drove a pitch just over the wall in right to open the scoring. The ball just snuck over the wall, and the play was reviewed.

"The way things have been going, I thought I was going back to second base," said Mauer, who was booed all day but went 3-for-4.

Justin Morneau hit an RBI double and Chris Parmelee added an RBI single to make it 3-0 in the first. Detroit got an RBI double by Torii Hunter in the fifth and a home run by Jhonny Peralta in the sixth but got no closer because the Twins bullpen put the game away. Glen Perkins earned his ninth save.

Gardenhire watched the game from his office following a third-inning ejection — his second ejection of the season and the 64th of his career — for arguing an interference call on Josh Willingham for not sliding close to the base, a questionable call by umpire Joe West. Gardenhire also watched Wilkin Ramirez collide with Willingham in the sixth inning while catching the final out of the inning. Ramirez was down for a while and came out of the game to be checked. Other than a sore jaw — which smacked into Willingham's powerful forearm — Ramirez was fine.

The Twins survived all of it while making the three runs hold up and ending the losing streak. Music thumped in the clubhouse once again, and someone even lit a victory cigar.

"Very exciting to get out from under that 10-gamer," Gardenhire said as smoke wafted through the clubhouse, "and hopefully we can build off this.''