Nolan Arenado, DJ LeMahieu and Kyle Parker hit solo home runs for the Rockies but Phil Gosselin's three-run blast and Patrick Corbin's arm helped the Diamondbacks to a 6-4 victory in the first game of a split doubleheader Tuesday.
Carlos Gonzalez added a pinch-hit RBI double for the Rockies, who have lost four of their last five home games.
The Rockies gave the sparse afternoon crowd something to cheer when they turned the fourth triple play in team history in the ninth inning.
With the runners on first and second moving on the pitch from Jason Gurka, Paul Goldschmidt hit a line drive to shortstop Jose Reyes, who was shaded up the middle. Reyes threw to second baseman LeMahieu to force Ender Inciarte, and then LeMahieu relayed to first baseman Ben Paulsen to get Gosselin.
"I saw Inciarte running and the ball was hit right to me," Reyes said. "All I had to do was throw it over to DJ."
It was the first triple play for Colorado since May 18, 2014, against San Diego.
"Just a perfect situation," manager Walt Weiss said. "We had two runners in motion and a line drive at the shortstop. That's how you draw it up."
Gosselin, who was acquired in a June 20 trade with Atlanta, doubled home a run in the third, and then broke it open in the seventh with the three-run shot off Miguel Castro (0-1) in the seventh. Gosselin went hitless in his Diamondbacks debut Monday after being activated from the 60-day disabled list.
Corbin (4-3) allowed two runs — homers by LeMahieu in the second and Parker in the fifth — and seven hits in 6 1-3 innings. The left-hander is 5-0 in his last seven starts against the Rockies.
Colorado left-hander Yohan Flande struck out five while pitching five innings and allowing two runs. He gave up five hits and walked three.
The 20-year-old Castro was charged with four runs in 1 1-3 innings in his Colorado debut. He was acquired in the July 27 trade that sent Troy Tulowitzki to Toronto.
"Big arm," Weiss said. "He left a fastball over the plate and Gosselin hit it out."
Jarrod Saltalamacchia gave Arizona a 1-0 lead after a little confusion on his drive down the left-field line in the second inning. It was initially ruled foul but after a nearly 2-minute review the call was overturned.
Arizona manager Chip Hale was ejected by home plate umpire Tim Timmons before the review. Hale said something was said from the bench and Timmons tossed him.
"Once I was thrown out I had a few choice words," Hale said. "Somebody said something while he was going down the line to talk the other umpires that he didn't like. I was trying to make sure he knew I would take care of that."
Arenado hit his 31st homer in the eighth, tying him with Bryce Harper and Gonzalez for the NL lead. He tied Goldschmidt for the RBI lead with 96.
Rockies: OF Corey Dickerson (fractured rib) ran in the outfield Tuesday morning and could be activated soon. He has been out since Aug. 1.
Rockies: RHP Kyle Kendrick (4-12, 6.43 ERA) was activated from the 15-day DL for the second game.