Justin Upton drove in two runs and Gerardo Parra knocked in the eventual game-winner in the sixth inning, as the Arizona Diamondbacks took down the Los Angeles Dodgers, 3-2, at Chase Field.
Trevor Cahill (11-11) gave up two hits in the first inning, including a two- run double to Adrian Gonzalez, but combined with the bullpen to retire the final 16 Dodgers hitters.
"I was just throwing strikes and trying to go after them," Cahill said.
Cahill did not walk a batter and struck out seven, while Brad Ziegler and David Hernandez each hurled a perfect inning in relief to finish off Arizona's fifth win in seven games.
Aaron Harang (9-9) allowed three runs on four hits and four walks in 5 2/3 innings for the Dodgers, who despite their third straight loss remain a game behind the Cardinals for an NL wild-card spot.
St. Louis heads to LA for a four-game series starting Thursday.
"We have to take each game at a time. ... We can't start thinking too far ahead of ourselves," Harang said.
Gonzalez ended the club's 18-inning scoreless streak when he knocked in Shane Victorino and Matt Kemp with a double in the first inning.
But the Dodgers' bats went silent from there, with Luis Cruz singling in both the second and fourth innings to account for their only other baserunners.
The Diamondbacks halved their deficit in the second when Upton came up with runners on the corners and no outs and lofted a sacrifice fly to right.
A pair of two-out walks proved costly for Harang in the sixth, as Upton singled through the left side to knock in Paul Goldschmidt with the tying run.
Randy Choate relieved Harang, and Parra responded with a base hit to bring in Miguel Montero with the winner.
Arizona took both games in the short set and won the season series, 12-6.
The Dodgers fell to 26-24 in one-run games this year, while Arizona improved to 13-24 ... The Diamondbacks have a day off before starting a three-game series against the Giants ... Cahill is 4-0 in six career starts against LA.