Arroyo (11-7) won for the sixth time in seven starts, holding the Diamondbacks to two runs on five hits over six innings. The right-hander walked one and struck out three.
With the game tied 2-2 in the sixth, the Reds pitcher lofted a 3-2 pitch from Tyler Skaggs (1-1) into the left field corner that bounced off the top of the wall.
The clout was initially ruled a double, but after a video review, the umpires reversed the decision and called it a home run -- the sixth of Arroyo's career.
Sean Marshall and Jonathan Broxton each tossed a scoreless relief frame and Aroldis Chapman recorded his 32nd save for National League Central-leading Cincinnati, which took the opener of a three-game set.
Skaggs, making his second major-league start, yielded three runs (two earned) on five hits in a 5 2/3-inning effort.
Justin Upton belted a solo homer and added a run-scoring single for Arizona.
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'