The Astros were leading 2-0 in the sixth inning when Carlos Corporan hit an RBI single with two outs and Rodriguez followed with a long single down the right field line on the first pitch from Ryan Vogelsong (10-3).
The Giants have lost 15 of their last 21 games, including four of five.
The Astros won their third straight game. Houston had not won more than two straight games since it had a four-game run May 30-June 2, the longest streak of the season.
Rodriguez (9-9) allowed five hits, struck out eight and walked two. It was his third eight-inning performance of the season.