Houston's other baserunners came on a hit batsman to lead off the third and a two-out walk in the eighth. Neither runner made it past first.
Francisco Cordero worked a perfect ninth for his seventh save.
Rosales singled in a run in the fifth and delivered a sacrifice fly in the eighth for the game's final score. Laynce Nix also had an RBI single in the sixth.
Houston had a season-best, three-game winning streak halted and the Astros lost in Cincinnati for the first time since May 10, 2007. Houston had won 11 straight on the Reds' home field.