Miguel Montero went 3-for-4 with a two-run 5 in the rubber match of a three-game set.
Diamondbacks rookie Wade Miley (4-2) went five innings, surrendering two runs on five hits while walking one. He struck out three.
Pirates starter Ross Ohlendorf (1-3) was chased from the game in the third frame when he loaded the bases without recording an out. He went two-plus innings, allowing seven runs on seven hits and two walks.
Derrek Lee continued to swing a hot bat for Pittsburgh, going 3-for-4 with a home run and two RBI.
The win moves Arizona's magic number to two to win the NL West. The Diamondbacks are 5 1/2 games ahead of the San Francisco Giants, who won against the Dodgers Wednesday night. The Diamondbacks take on the Giants in a three-game set starting Friday at Chase Field.
The Diamondbacks struck quickly in the home-half of the first. Justin Upton hit a sacrifice fly in the first to plate Willie Bloomquist and Montero followed with a two-run blast to right field to make it a 3-0 game.
Ryan Ludwick got a run back for Pittsburgh in the second with a solo home-run to left.
Arizona batted around and exploded for five more runs in the third. The frame was highlighted by an RBI single by Chris Young, a two-run double down the left-field line by Ryan Roberts and a two-run single by Hill.
In the fourth inning, Lee slapped a single to right to bring home Andrew McCutchen, who led off with a double. Lee was at it again in the sixth when he blasted a majestic solo shot deep to center field.
Pittsburgh made it an 8-4 game in the seventh when Josh Harrison scored on a wild pitch. Harrison originally reached base on an opposite field ground- rule double down the right-field line.
J.J. Putz struck out the side in the ninth to notch his 43rd save of the season.
Arizona recorded two double steals in the first inning. The four swiped bags in the frame is a franchise record for Arizona, and the seventh time this season that a team has stolen four bases in an inning...Hill and Bloomquist extended their 14-game hitting streaks...Putz has converted 22-straight saves...Lee's home run was his seventh as a Pirate.