Diamondbacks 10, Pirates 4: Chris Johnson belted a three-run homer to snap a tie in the eighth inning and added a two-run shot in the ninth as visiting Arizona prevented Pittsburgh from moving 17 games over .500 for the first time in 20 years.
Stephen Drew homered for the second straight game and Miguel Montero had an RBI double and single. Paul Goldschmidt added an RBI single for the Diamondbacks, who won in Pittsburgh for just the second time in eight outings. The trio had three hits apiece in the victory.
After the Pirates seized a 4-3 lead in the seventh inning, Arizona regrouped and immediately went to work on reliever Jason Grilli (1-4). Goldschmidt doubled to lead off the eighth and Justin Upton singled before Montero did the same to tie the contest. Johnson then blasted a high fastball two seats over the wall in center field.
Johnson added his 13th homer in the ninth inning when he once again went deep to center to give Arizona a 10-4 advantage. He has five homers and 15 RBIs in eight games with the Diamondbacks.
Grilli exited the contest after yielding four runs on as many hits without retiring a batter.
The scoring burst allowed Brad Ziegler (5-1) to pick up the win after he induced a double-play ball to end the seventh inning.
Rookie Starling Marte tied the contest at 3-3 by leading off the seventh inning with a home run. Travis Snider collected three hits and Andrew McCutchen drove in a pair of runs for the Pirates.
GAME NOTEBOOK: The Pirates were bidding to move 17 games over .500 for the first time since 1992. They finished that season with a 96-66 mark. That was the last campaign that Pittsburgh made the playoffs. ... Rookie Patrick Corbin allowed two runs on six hits and struck out a season-best seven in six innings. The performance was the eighth straight quality start by Arizona - its longest such streak since a run of 11 in a row in September 2008.