CINCINNATI - The gopher ball doomed the Reds Sunday as five Arizona homers accounted for all that club's runs in a 9-2 rout.
Reds starter Luis Castillo gave up two homers that accounted for five runs, and reliever Keury Mella gave up three homers in the ninth inning that scored four more.
Daniel Descalso hit a three-run shot in the first on a two-strike pitch, and Paul Goldschmidt made it 5-2 with a two-run drive in the sixth.
Otherwise, Castillo figured he pitched well.
"I was supposed to throw inside on the 0-2 pitch, but it was over the plate and he (Descalso) took advantage of it," Castillo said. "The pitch to Goldschmidt, I got it where I wanted, but he's a big strong man and put a good swing on it. I thought it was a fly ball, but it kept going and going.
"I thought overall, I pitched well. The only mistake I made was to Descalso."
Goldschmidt hit a second homer and Eduardo Escobar and David Peralta also connected as the Diamondbacks avoided a three-game sweep.
Last-place Cincinnati had won three of four, including the first two games of the weekend series. Jose Peraza and Eugenio Suarez each had two hits, but Castillo (6-10) was tagged for five runs and five hits in 5 2/3 innings.
Arizona starter Zack Godley (13-6) pitched 6 2/3 innings of two-run ball and snapped a tie with Zack Greinke for the team lead in wins. The right-hander allowed six hits, struck out six and walked one while improving to 5-0 with a 3.09 ERA over his last six road starts.
The Diamondbacks were tied with the Dodgers for the NL West lead coming into the day.
Goldschmidt finished with three hits and three RBIs, and Peralta also drove in three runs.
Descalso hit a three-run shot in the first, and Goldschmidt made it 5-2 with a two-run drive in the sixth.
In the ninth, Escobar hit a two-run shot, and Goldschmidt and Peralta added back-to-back homers.
Cincinnati scored its first run when Arizona shortstop Nick Ahmed committed a throwing error on a potential double-play ball in the second, allowing Suarez to score from second.
Joey Votto drove in Peraza with a sacrifice fly in the third.
Diamondbacks: Greinke (12-7) starts Monday night at Texas against Bartolo Colon (6-10). Greinke has allowed a combined three runs over 13 innings in his last two starts and lost both.
Reds: Injury-plagued RHP Homer Bailey (1-9) makes his first start against Cleveland since Aug. 7, 2014. Mike Clevinger (7-7) pitches Monday night for Cincinnati.