Los Angeles right-hander Zack Greinke gave up three hits in eight scoreless innings and strengthened his case for the NL Cy Young Award in the Dodgers' 4-3 victory over the Arizona Diamondbacks at Chase Field on Sunday.

Greinke (17-3) struck out eight and walked two while dropping his ERA to 1.61, the lowest in the majors. He also leads the majors in WHIP and quality starts and has given up one or fewer runs in 20 of his 29 starts.

Dodgers first baseman Adrian Gonzalez had three hits and an RBI, catcher A.J. Ellis homered and third baseman Justin Turner had two hits, drove in a run and scored another.

Arizona catcher Jarrod Saltalamacchia, who broke up Greinke's no-hitter in the fifth inning, hit a three-run homer off right-hander Kenley Jansen with two outs in the ninth inning.

Greinke faced only three batters over the minimum and benefited from two double play grounders. Greinke, who won the AL CY Young with Kansas City in 2009, will most likely have three more starts.

Dodgers left fielder Justin Ruggiano doubled and score on Turner's single in the first inning off left-hander Patrick Corbin (5-4), and Turner singled and scored on a fielder's choice in the third inning.

Gonzalez singled in a run in the seventh inning and Ellis homered in the eighth as the Dodgers (82-60) maintained a 7 1-2 game lead over the San Francisco Giants in the NL West with 20 games remaining. The Dodgers have won seven of nine.

Saltalamacchia doubled off the left-center field fence with one out in the fifth inning. Greinke had faced the minimum to that point, getting a double play grounder after walking Saltalamacchia with one out in the second inning.

Shortstop Nick Ahmed beat out single into the hole at shortstop and center fielder A.J. Pollock grounded a single to right field with one out in the sixth inning, the only time the Diamondbacks had two runners on in an inning against Greinke.

After the runners moved up on a groundout, Greinke struck out first baseman Paul Goldschmidt on five fastballs to get out of the inning.

Corbin gave up two runs on eight hits and struck out four in six innings. The Diamondbacks (68-75) have lost three of their last five.