Cincinnati scored three times in the fourth inning to break a 1-1 tie and hand Arroyo (12-9) a cushion. The right-hander responded by limiting the Diamondbacks to three runs on seven hits, walking none and striking out six.
Manny Parra and J.J. Hoover each supplied a scoreless relief inning and Aroldis Chapman racked up his 31st save as the third-place Reds tightened the race in the National League Central, pulling to within two games of division leader Pittsburgh.
Zack Cozart drove in a pair of runs, Todd Frazier homered and Brandon Phillips added three hits for Cincinnati, which won for the seventh in nine contests in the opener of a four-game set.
D-backs starter Randall Delgado (4-4) was reached for five runs on seven hits over six full innings.
Martin Prado went 2-for-4 with two RBI for Arizona.