CINCINNATI (AP) -- Paul Goldschmidt's solo home run in the fifth inning gave Arizona the lead for good, and the Diamondbacks finished with four homers in holding off the Cincinnati Reds 9-8 on Sunday.
Yasmany Tomas chipped in a with a pair of solo home runs and Wellington Castillo had a three-run shot as Arizona ended a four-game losing streak and avoided a three-game sweep in Cincinnati for the first time since 2007.
It wasn't easy. Jay Bruce hit a three-run homer in the ninth to pull the Reds within a run before Tyler Clippard regrouped to get the final three outs.
Every Cincinnati starter except pitcher Brandon Finnegan had at least one hit off starter Zack Godley, helping the Reds come from behind twice.
Godley (3-1) became the first pitcher in franchise history to reach seven career wins as a starter in as few as 10 starts. He allowed 10 hits and five runs with two walks and three strikeouts. He also hit a batter.
Finnegan (5-8) failed for the fourth consecutive start to get past five innings. He allowed seven hits and six runs with two walk and three strikeouts.
Goldschmidt was 0-for-6 with four walks in the series before leading off the fifth with his 17th home run of the season to break a 5-all tie.
The teams combined for 13 hits and 10 runs in the first three innings, including Tomas's one-out home run in the second on the first pitch he saw from Finnegan and Castillo's opposite-field shot into the right field seats in the third.
Tomas hit Josh Smith's first pitch of the eighth for his second homer of the game.
The game was delayed for a couple of minutes while a Reds trainer checked out catcher Ramon Cabrera after he took a Brandon Drury foul tip off his facemask. Cabrera stayed in the game.
RHP Anthony DeSclafani tries to improve to 6-0 in nine starts as the Reds on Monday open a seven-day, six-game West Coast swing with the first of three games at San Francisco.