Rodriguez (10-9) scattered four hits, allowed three runs and walked four batters to get into the double-digit win column for a third consecutive season.
Jose Altuve tallied three hits and an RBI, as Houston won its second straight following a 1-6 stretch.
Ross Ohlendorf pitched the first five frames for the Pirates in the opener of this three-game series, but Jason Grilli (1-1) couldn't hold the advantage. Jose Veras was also touched for a pair of runs in the decisive seventh inning.
Andrew McCutchen hit a two-run homer for the Pirates, who have dropped seven of their last 10 contests.