Yusmeiro Petit combined with three relievers on a four-hitter as Arizona beat the Chicago Cubs 3-0 to win a road series for the first time in over a month.
Petit limited the Cubs to three hits over six innings to even his mark at 2-2. He was making his fifth start of the season, and his fourth since replacing the injured Randy Johnson in the rotation.
Mark Reynolds put the D-Backs ahead with an RBI single in the top of the first. Chris Snyder added a solo shot in the seventh before Conor Jackson hit a run-scoring double later in the inning.
Sean Marshall pitched well enough to win, allowing a run and five hits in six innings. Marshall is 4-4.
Jose Valverde got the last three outs for his 30th save.
The loss drops the Cubs 3.5 behind the NL Central-leading Milwaukee Brewers.