Goldschmidt hit his 30th homer, Greinke won for the first time in almost a month and the Diamondbacks avoided a three-game sweep at the hands of Seattle by beating the Mariners 5-2.
With the victory and Colorado's 12-3 loss to St. Louis, the Diamondbacks were back alone in first place in the NL West, a game up on the Rockies and 2 1/2 ahead of the Los Angeles Dodgers. Houston beat the Los Angeles Angels 3-1, so Seattle fell 6 1/2 behind the Astros in the AL West.
"This is an amazing game, and you can't take anything for granted," Diamondbacks manager Torey Lovullo said. "We fumbled a couple of balls out there and that leads to a couple of runs, but when we had to, we made pitches and made plays and won a very tough game.
"When I tell you today was hard, that was probably an understatement after what we walked through last night."
Goldschmidt's three-run shot off Mike Leake (8-8) punctuated a five-run third inning for the Diamondbacks, who bounced back from blowing a two-run lead in the ninth Saturday night and losing in 10 innings.
Arizona flirted with losing this one in the ninth, too. Ben Gamel and Chris Herrmann opened the inning with singles off Yoshihisa Hirano and left fielder David Peralta dropped Dee Gordon's line drive to allow a run to score.
Brad Boxberger, who blew the save Saturday night, came in and walked pinch-hitter Nelson Cruz to load the bases. But Mitch Haniger lined out sharply to third and Robinson Cano bounced into a double play to give Boxberger his 29th save in 35 tries.
"We did put some pressure on them, had our chances there late," Mariners manager Scott Servais said, "just not enough."
Greinke (13-8) gave up an unearned run and five hits in 6 2/3 innings, striking out six and walking two. He had gone 0-3 in his previous four starts.
Leake fell to 0-4 in his last 10 starts and hasn't won since June 23 despite several strong outings in that span. He was tagged for five runs and seven hits, striking out six in six innings Sunday.
"It's part of the game," he said of the long stretch without a win. "There's ups and downs. It's what you learn throughout your career. It's just part of it and you've just got to keep doing a good job."
Jeff Mathis, Greinke and Jon Jay loaded the bases with one-out singles in the third. A.J. Pollock brought the tying run home with a sacrifice fly and David Peralta made it 2-1 with a slow-rolling RBI infield single.
Peralta's was the key hit of the inning, Servais said, "an extra out."
That brought up Goldschmidt, who was 1-for-10 in the series before sending Leake's pitch deep into the left field seats.
It is Goldschmidt's fourth career 30-homer season.
"Honestly, it's not something I'm thinking about," he said. "We're obviously here in a playoff race and just trying to find a way and go out and perform and help us win. Even if I don't do that (hit 30 homers) and the team wins, that's most important."
Seattle got an unearned run in the first when Haniger reached on shortstop Ketel Marte's throwing error. With two outs, Haniger advanced to second on Denard Span's single and scored when Kyle Seager singled.
Mariners: Leake was scratched from his last scheduled start Aug. 21 because of illness.
The Diamondbacks showed a video tribute to Arizona Sen. John McCain, who died Saturday of brain cancer. McCain was a fan of the team and a regular at games until his illness forced him to stay away. The tribute even included a repeat of McCain's tweet after the Dodgers celebrated clinching the pennant with a dip in the Chase Field swimming pool, calling it a "no class act by a bunch of overpaid, immature, arrogant, spoiled brats."
After the video, there was a moment of silence for McCain. A No. 18 jersey with the name "McCain" hung in the Diamondbacks' dugout.
In a statement, Diamondbacks President and CEO Derrick Hall said, "I am honored to consider him a friend and we will miss seeing his smiling face in the stands."
More AP MLB: https://apnews.com/tag/MLB and https://twitter.com/AP-Sports
Power-infused Braves look for series win over Giants
Austin Riley appears to be skipping the learning curve that often comes with a rookie's first taste of major league pitching.
Angels, Twins try again after rare Anaheim rainout
The scheduled Wednesday night game between the Los Angeles Angels and Minnesota Twins that was postponed because of wet field conditions will be made up Thursday afternoon in Anaheim, Calif.
Nola, Phils aim for split with Cubs, but Lester looms
Philadelphia Phillies catcher J.T. Realmuto sensed a special outing was brewing from Aaron Nola before the right-hander even fired a pitch that counted against the Colorado Rockies on Saturday.
Streaking Marlins go for sweep of struggling Tigers
Brian Anderson has unearthed his power stroke in Detroit. The Miami Marlins third baseman will try to do more damage in the series finale against the Tigers on Thursday afternoon.
Pirates hope Lyles can turn tide vs. Rockies
The Colorado Rockies have found a panacea, at least temporarily, in facing the Pittsburgh Pirates.
Red Sox look to win series from Blue Jays
Toronto made the visiting Boston Red work for their 6-5, 13-inning win Wednesday night, but the bottom line is that the Blue Jays can only hope to split the four-game series.