Arroyo (12-7), who hasn't lost since Aug. 6, yielded only one run on seven hits, walking two and striking out five.
The right-hander placed 67 of his 98 pitches for strikes as the National League Central-leading Reds evened their three-game series.
Jay Bruce and Brandon Phillips each knocked a solo homer to spark Cincinnati's offense.
Houston's Bud Norris (5-12) was touched for five runs on six hits over 5 1/3 innings.
Justin Maxwell knocked in the Astros' only run.