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.
Notable deaths of 2014 [PHOTOS]
Arizona Cardinals player formally charged