Gerardo Parra hit a two-run double, Jason Kubel homered and the Diamondbacks defeated the Dodgers, 5-3, on Saturday.
Trevor Cahill (7-7) got the decision, allowing three runs on six hits over seven innings. He struck out six and walked one. J.J. Putz picked up his 16th save of the season.
Stephen Drew and Paul Goldschmidt both had a sacrifice fly for the Diamondbacks, who have won two straight on the heels of a season-high, six- game losing streak.
Chad Billingsley (4-9) recorded his 1,000th career strikeout but dropped his fifth consecutive start. He gave up four runs on six hits over six frames and fanned five.
Jerry Hairston hit a two-run homer in the first inning and A.J. Ellis added a solo shot in the seventh for the Dodgers, who had won four of six coming in.
The finale of this four-game series is on Sunday.
"It was big for (Cahill) to get through seven innings for us tonight," said Diamondbacks manager Kirk Gibson. "Seven innings just makes tomorrow's game much better as well."
Drew's sac fly capped a three-run fifth inning, while Goldschmidt's provided insurance in the sixth.
The former plated Parra, who initiated the go-ahead rally with a double into the left field corner, scoring Miguel Montero and Geoff Blum in the process.
An inning later, Justin Upton ripped a leadoff double, moved up on a fly out and made it 4-2 on Goldschmidt's shot to the warning track in right. The sequence proved essential given Ellis' leadoff line drive homer in the seventh.
Kubel's two-out blast -- his 15th of the season -- capped the scoring in the eighth.
"They got three in a row there and then they just executed after that," said Dodgers manager Don Mattingly. "Two sac flys ended up being the difference in the game."
Upton has hit safely in eight games against the Dodgers this season...The Diamondbacks are 4-1 in their last five games against Billingsley...Cahill has gone 17-1 in 22 starts when receiving three runs of support or more...Billingsley now has 1,003 career strikeouts.