Winning pitcher Aaron Harang (5-4) allowed three runs on 10 hits in five innings. He also had two hits and an RBI in the game, which was delayed two hours by rain during the fifth inning.
Francisco Cordero pitched a scoreless ninth for his 12th save this season.
Losing pitcher Wandy Rodriguez (5-3) gave up six runs -- all unearned -- on 10 hits in four innings in his worst start this season.
Lance Berkman had a two-run homer for Houston, which has lost five in a row. Hunter Pence and Jeff Keppinger each had three hits in the loss.