Goldschmidt, who was mired in a 1-for-18 slump heading into his third at-bat of the game, hit his 19th of the season to break a scoreless deadlock in the sixth. Gregorius added a crucial shot in the top of the ninth inning to make it 5-1 before the Reds rallied in the home half to make things interesting.
Eury De La Rosa started the bottom of the ninth and allowed a leadoff single to pinch-hitter Billy Hamilton. Ramon Santiago then drew a one-out walk before closer Addison Reed came on and served up a three-run homer to Devin Mesoraco that trimmed the deficit to 5-4 with two outs. Reed responded by striking out Ryan Ludwick to preserve the game and earn his 26th save of the year.
Wade Miley (7-7) pitched 6 2/3 scoreless innings for Arizona, which won a series at Great American Ball Park for the first time since 2011. The win also gave manager Kirk Gibson his 337th victory with the club, matching Bob Melvin's franchise record.
Cincinnati starter Alfredo Simon (12-6) was charged with two runs on six hits over seven innings of work, as he fell to 0-3 since the All-Star break with the loss.