The win completed a 7-3 road trip for the Dodgers and lowered their magic number to clinch the National League West down to a lucky 13.
Greinke didn't need much luck on Sunday, striking out eight in pitching eight scoreless innings and 93 pitches.
The Dodgers went with closer Kenley Jansen in the ninth inning with a 4-0 lead, a non-save situation, and after striking out the first two batters Jansen allowed a walk and a single before Jarrod Saltalamacchia took him deep to cut the lead to one run.
Jansen retired Jake Lamb to end the game, but threw a season-high 33 pitches in his outing.
Greinke didn't allow a hit until the fifth inning, and the only real threat came in the sixth, when two singles brought the great Paul Goldschmidt to the plate representing the go-ahead run with two outs in a 2-0 game.
Greinke struck him out, the third time Goldschmidt struck out on the day.
It was the 20th time in 29 starts Greinke has allowed no more than one run this season, and his 11th scoreless start of the year. The only Dodgers pitcher with more scoreless starts in one season than Greinke's 11 was Sandy Koufax, with 13 in 1963.
In six starts at Chase Field as a Dodger, Greinke has six wins and has allowed three runs. Total, for an 0.65 ERA.
Greinke surpassed 200 innings for the sixth time in his career, now at 200⅔ on the season. He lowered his major-league-leading 1.61.
The Dodgers backed Greinke with scattered runs throughout. Justin Ruggiano nearly hit the Dodgers' fourth leadoff home run in five games, but settled for a double off the wall and scored in the first inning on a Justin Turner RBI single. Scott Van Slyke drove in a run on a fielders choice ground ball in the third.
Ronald Torreyes, subbing in for Jose Peraza at second base in his major league debut, doubled in the seventh in his first major league at-bat, then scored on a two-out single by Adrian Gonzalez, who had three hits and a walk on the day. A.J. Ellis added a solo home run into the pool area in the eighth inning, his fifth home run of the season and all in his last 90 plate appearances.
Corey Seager proved he was human with an 0-for-4 day at the plate, but worked a nine-pitch walk in the ninth inning. He has now reached base in all nine of his starts.
The Dodgers return home on Monday, beginning with three games against the Rockies. In the series opener, Clayton Kershaw takes the mound, facing Colorado rookie Jon Gray.
Home run: A.J. Ellis (5); Jarrod Saltalmacchia (8)
WP - Zack Greinke (17-3): 8 IP, 3 hits, 2 walks, 8 strikeouts
LP - Patrick Corbin (5-4): 6 IP, 8 hits, 2 runs, 4 strikeouts