PHOENIX (AP) — Ryan McMahon and the Rockies found a way to stack hits against Arizona ace Zack Greinke, and those hits led to another Colorado victory.
McMahon hit a tiebreaking, two-run double in the seventh inning to make up for a costly error, and the Rockies added on in a 6-4 win over the Diamondbacks on Wednesday night.
Jon Gray (7-5) held Arizona to one earned run over six innings, and Daniel Murphy homered as the Rockies rallied from a 2-0 deficit for their third victory in four games. McMahon had three hits and three RBIs.
"You've got to be able to take what he gives you," McMahon said about Greinke. "He's not an easy at-bat, that's for sure. But we're a good hitting ballclub and we got to him."
It wasn't all good news for the Rockies, though — shortstop Trevor Story left in the sixth after jamming his right thumb on a headfirst slide into second base. Colorado manager Bud Black said X-rays were negative, but Story is scheduled for an MRI on Thursday.
"I'm always nervous if you have to go get an MRI," said Story, who leads the majors with 65 runs and is one of two players with at least 15 homers and 10 steals. "You never know. ... All positive thoughts here for sure from me."
Colorado scored three in the seventh off Greinke, and for the first time in more than five years, got 11 hits in a game against him.
McMahon's big double came after back-to-back singles by Nolan Arenado and Murphy. McMahon scored on Tony Wolters' single.
"I threw a lot of pitches where I wanted. The Murphy home run was a really bad one," Greinke said. "A lot of good pitches but too many balls in play, not enough strikeouts and gave up a lot of hits."
Greinke (8-3) allowed five runs in seven innings and lost for the first time at home this season.
Pinch-hitter Kevin Cron had a solo homer in the ninth off Rockies closer Wade Davis, and Arizona brought the potential tying run to the plate. Davis got David Peralta to line out for his ninth save.
McMahon's RBI single in the eighth made it 6-3. The Rockies have at least 12 hits in six straight games, tied for the longest such streak in franchise history.
The Diamondbacks scored first with the help of McMahon's error at second base in the second inning. Nick Ahmed hit a grounder, and McMahon missed tagging Christian Walker running from first base to second and dropped the ball, allowing Eduardo Escobar to score from third.
Greinke's fielder's choice drove in Walker for a 2-0 Diamondbacks lead.
The Rockies tied it on Murphy's swing with two outs in the fourth. He drove a 2-0 pitch from Greinke onto the pool deck in right field for his sixth home run of the season.
Peralta drove in Arizona's third run with a single in the seventh. He has reached base safely in 13 straight games.
The Diamondbacks have lost four of their last five home games.
"They beat us seven games in a row," manager Torey Lovullo said. "I'm taking that kind of personal and we've got to come out tomorrow and make something happen."
Greinke tried to help his own cause in the fifth, leading off with a single. But he decided to try to stretch it into a double and was thrown out, left fielder Raimel Tapia to McMahon for the tag.
Story attempted his own hustle double in the sixth, but Diamondbacks center fielder Jarrod Dyson threw to Ahmed for the tag on Story.
Tim Locastro was hit by a pitch for the 12th time this season. That's a Diamondbacks record for before the All-Star break.
The Diamondbacks agreed to terms with their top two picks from this year's draft, outfielder Corbin Carroll (No. 16 overall) and pitcher Blake Walston (No. 26).
Walston attended the game, and Carroll is expected at Chase Field on Friday.
Rockies: Story was injured trying to stretch his single in the sixth and was replaced at shortstop by Pat Valaika. "I'm not sure exactly how it happened. I just know it didn't feel very good," Story said.
Rockies: RHP Jeff Hoffman (1-3, 7.04 ERA) is scheduled to start Thursday's series finale. Hoffman is 1-2 with a 9.00 ERA in his career against Arizona.
Diamondbacks: LHP Robbie Ray (5-4, 3.83) is set to face the Rockies for the 15th time. Ray is 4-5 with a 5.57 ERA against Colorado.