The D-backs logged a club record-tying four stolen bases during a three-run first inning and Aaron Hill added two hits, including a two-run single, as the Diamondbacks lowered their magic number to clinch to two.
Wade Miley (4-2) earned the victory, allowing two runs on five hits over five innings, walking one and striking out three.
After the Pirates scored three runs in the late going, J.J. Putz came on to pitch the ninth and racked up his 43rd save.
Pittsburgh's Ross Ohlendorf (1-3) was rocked for seven runs on seven hits in just two innings.
Aaron Carter is still in love with Hilary Duff
Ray Liotta sues skin care company over use of likeness