Rizzo doubled in three runs in the Cubs' four-run fifth inning, then broke a 6-6 tie with a three-run homer into the Chase Field swimming pool area off Enrique Burgos (0-2) in the ninth.
The Cubs, losers 5-4 in 13 innings Friday night, scored five runs in the final two innings.
Rizzo's six RBIs tied a career best set on Sept. 16, 2012.
The Cubs coughed up a lead earlier.
Arizona's Rubby De La Rosa cruised through four scoreless innings before the Cubs erupted in the fifth. After De La Rosa hit Bryant to bring in a run, Rizzo followed with a double off the left-field wall, clearing the bases and putting Chicago up 4-2.
The lead didn't last long.
With one out and a runner on first in Arizona's fifth, Nick Ahmed hit a soft grounder to short for what looked to be an easy inning-ending double play. But second baseman Addison Russell dropped the sort toss from shortstop Starlin Castro and both runners were safe. Diamondbacks starter Jake Arrieta walked Paul Goldschmidt to load the bases, and David Peralta doubled deep in the right-field gap to bring all three runners home and put Arizona back on top 5-4.
Gosewisch's shot into Arizona's bullpen down the left-field line made it 6-4. Both of his career homes have come against the Cubs.
Diamondbacks: RH reliever David Hernandez, coming back from Tommy John surgery, pitched a scoreless inning for Double-A Mobile Friday night. He is to pitch again Monday and could join the big league club later next week.
Cubs: RHP Jason Hammel (3-1, 270 ERA) tries to salvage the final game of the series for the Cubs. He's 2-0 with a 1.50 in his last five starts. The team goes to San Diego for the final three games of Chicago's six-game western trip.
Diamondbacks: RHP Jeremy Hellickson (1-3, 5.52) looks to complete the sweep for Arizona. Hellickson is winless in four starts at Chase Field.