MINNEAPOLIS -- A batting practice mishap wasn't enough to keep Wandy Rodriguez from his first win in more than a month.
A day after getting hit on the left side of his back by a batted ball from a teammate, Rodriguez gave up only two hits in seven innings to lead the Houston Astros past the Minnesota Twins 4-1 on Sunday.
Rodriguez threw about a dozen pitches before the game and deemed himself sore but ready, and proved all was well after going 0-4 with a 6.93 ERA in his previous five starts.
"It hurt, but I could throw," Rodriguez said after lifting his shirt following the game to show off his bruise. "We've lost a lot of games, so we needed to win. That's what I was thinking today -- I need to win."
Rodriguez (6-6) gave up Michael Cuddyer's homer leading off the second inning, but didn't allow another hit until Brian Buscher's one-out single in the seventh on his 105th pitch. Rodriguez walked three and struck out eight for his first win since May 20 against Milwaukee.
"He was terrific today," Astros manager Cecil Cooper said. "It looked like he got stronger as the game went on. Today was a real positive outing for him. Hopefully we can build on this."
Jeff Keppinger had three hits, an RBI and a run scored, and Hunter Pence added three hits for Houston, which took two of three at the Metrodome for its sixth series win in its last seven overall.
Glen Perkins (2-4) took the loss, allowing four runs and nine hits in seven innings.
The Astros wasted no time getting to Perkins, starting the game with Michael Bourn's bunt single and stolen base followed by Keppinger's RBI single.
Miguel Tejada doubled for his first hit of the series and Carlos Lee drove in Keppinger with a groundout. Pence's double scored Tejada from third two batters later for a 3-0 lead. The three earned runs pushed Perkins' first-inning ERA to 11.17 this season.
The view on the inning after the game differed in the clubhouses.
"We had good offensive execution," Cooper said. "Bourn sets the tone and basically this year that's what he's done for us. Today was no different. Had a great bunt, stole a base, everything was perfect."
Twins manager Ron Gardenhire was upset that second baseman Matt Tolbert was slow to cover first base on Bourn's bunt, and thought Jason Kubel should have caught Tejada's high drive in the right-field corner that he lost in the Metrodome roof.
"We just made two mistakes that cost [Perkins]," Gardenhire said. "They aren't errors on the board, but they're mistakes. We missed the play in right and we didn't cover first base. There's your ballgame."
Kubel, who left in the top of the fourth with a stomach ailment, was in right because Cuddyer was playing first for Justin Morneau, who had his first day off since June 27, 2007 -- ending his streak of 319 consecutive games played that was second in the majors to Ryan Howard's 343-game streak through Saturday.
Howard also sat out Sunday for Philadelphia after being hospitalized for the second consecutive night with flu symptoms.
Tejada added a sacrifice fly in the seventh off Perkins, which was more than enough thanks to Rodriguez.
The lefty retired eight straight Twins between Joe Crede walks in the second and fifth and set down seven more batters before Buscher's single.
Chris Sampson worked a scoreless eighth and Jose Valverde pitched a perfect ninth for his fifth save in seven opportunities as the Astros held the Twins to a season-low two hits.
"[Rodriguez] just threw the ball well, pitched really well, had good stuff today and good location," Cuddyer said. "Sometimes you have to tip your hat to the pitcher and today's one of those days."
Houston improved to 3-6 against the American League this season and won its fourth interleague series in its last six dating to last year.
Minnesota had won 10 of 11 interleague series and eight in a row dating to May 16-18, 2008, when it lost two of three at Colorado.
Houston C Humberto Quintero was scratched from the lineup with a stiff lower back. Quintero combined with Rodriguez to hold the Chicago Cubs to one run over seven innings on June 10. Before Sunday's start, Rodriguez had given up 24 runs (18 earned) over 17 2/3 innings through his last four starts paired with Ivan Rodriguez. ... Twins INF Nick Punto was out of the lineup after leaving Saturday's game in the seventh inning with bruised ribs. ... DH Joe Mauer went 0 for 4, ending a 12-game hitting streak. ... Kubel went 0 for 1 before leaving the game, ending his 11-game hitting streak.