MINNEAPOLIS -- It had gotten to the point where the Twins were considering wearing their road jerseys at home, just to make starter Matt Garza feel like he was on the road.

That was the idea floating through the clubhouse prior to Wednesday night's game. Garza came into it 0-10 in 11 career starts at the Metrodome. But he proved he didn't need the road jersey to win, and got the victory on his 12th try.

"I looked out there, I thought he might have had his 'M' hat on instead of his 'TC' hat," manager Ron Gardenhire said after the 4-2 victory over the Rangers. "He just went with his best pitches, and that normally gets you through a lot of things. He has a big smile on his face, he's pretty excited."

Garza pitched 6 1/3 innings and allowed two runs -- one earned -- on six hits. With five strikeouts, he ran his career total to 53 strikeouts in the Dome.

Garza's home woes didn't stem entirely from his pitching performances. He lost two games by just one run, and the four runs of support he got from the Twins' bats on Wednesday were the most he's received all season.

"It's a good feeling," Garza said. "A win is a win. It's great at home, but a win is a win, and it's good just to help the team out."

Garza's win did help the team out, leading to its eighth sweep of the season and its first sweep of the Rangers in a three-game series since Aug. 31-Sept. 2, 2004.

He gave up a home run to Frank Catalanotto on the fifth pitch of the game -- a back-door slider that Catalanotto reached and hit to right field. But after that, Garza settled in.

Starting in the third inning, Garza retired 12 straight Rangers until Jason Botts singled to lead off the seventh. He mostly relied on his strong fastball but, as Garza has done since being called up, he made an effort to work in his other pitches, as well.

"It's just about settling down and using your pitches and not trying to over-pitch people," Gardenhire said. "If they're not catching up to your fastball, you don't have to slow the ball down and let them catch up to a slider. He was throwing the fastball really good and they weren't getting to it. I know he wants to use all of his pitches, but if they're not going to catch up to your fastball early in the ballgame, then pump it in there a little bit and speed them up a little bit trying to get to it, then the breaking ball is going to work in the dirt. Early, he had to figure it out. Once he did, he got it going pretty good."

Garza was taken out after he gave up two singles in the seventh and the Rangers came within a run of tying the game on left fielder Garrett Jones' fielding error.

Gardenhire called in Glen Perkins, making just his second appearance at the Metrodome since spending almost the entire season on the disabled list.

Perkins completed the seventh and got the first out in the eighth without allowing a hit.

"Perkins came in and did a super job. That's a couple nights in a row he's come in and gotten people out," Gardnehire said. "We don't want to stress him out too awful much, he hasn't been pitching all year, but we're using him a couple nights in a row and he's throwing the ball pretty good."

Offensively, the Twins found their stride against the Rangers. They benefitted from solo home runs by Jason Kubel and Michael Cuddyer. Justin Morneau hit an RBI single to break his 0-for-16 streak at the plate and tie the game in the bottom of the first inning.

"I told you, we're not going to quit," Cuddyer said. "We played hard and played good baseball in this series. It's good to get those wins."

Nick Punto, who has struggled to keep his average above .200 all season, went 2-for-4 to run his hit streak to a season-high-tying six games and boost his average to .211.

Torii Hunter showed uncharacteristic patience at the plate and drew three walks, tying his career high. He's only gotten three walks one time previously in his career, May 23, 2006, at Cleveland.