Isaiah J. Downing-USA TODAY Sports

Elias Diaz hit two home runs, including a game-ender, and drove in seven runs, C.J. Cron hit a 504-foot homer, the longest in the majors this season, and the Colorado Rockies beat the Arizona Diamondbacks 13-10 in Denver on Friday night.

Diaz capped his four-hit night with a two-out, three-run homer, his ninth of the season, off Caleb Smith (1-2) in the ninth inning.

Ryan McMahon also homered twice for Colorado (60-79). The Rockies got two hits apiece from Michael Toglia, Alan Trejo and Yonathan Daza.

Daniel Bard (5-4) pitched an inning of scoreless relief to get the win, Colorado's third straight.

Jake McCarthy homered among his three hits, Daulton Varsho hit a grand slam and Corbin Carroll also went deep for the Diamondbacks (65-72), who have lost three in a row. A nine-run fifth inning wasn't enough for Arizona.

The Diamondbacks took a 1-0 lead on McCarthy's solo homer in the first, his eighth, and McMahon led off the bottom of the frame with a home run tie it.

The Rockies went up 3-1 in the second inning on a two-run homer from Diaz, and then Colorado added to the lead in the fourth.

Diaz drove in the first run with a single, a double play brought in another and McMahon followed with his second homer of the night and 15th of the season to chase starter Zach Davies.

Davies allowed six runs on seven hits, fanned four and walked three in 3 2/3 innings.

Later in the fourth, Cron crushed a pitch from Keynan Middleton over the concourse in left to make it 8-1. It tied Giancarlo Stanton for the longest homer ever at Coors Field.

Arizona rallied in the fifth off German Marquez. Carroll hit his second homer of the season, Carson Kelly walked, Alek Thomas singled and Geraldo Perdomo was hit by a pitch to load the bases.

Josh Rojas' single and Ketel Marte's walk brought home two runs, and McCarthy's two-run single made it 8-6.

Christian Walker singled to reload the bases and end Marquez's night, and Varsho hit a grand slam off Austin Gomber to make it 10-8. It was his 24th homer of the season.

Marquez allowed nine runs on seven hits in four-plus innings. He struck out three and walked two.

Daza hit an RBI double in the sixth, and the Rockies tied it on Diaz's RBI double in the seventh.

More must-reads:

TODAY'S BEST
Insider provides major injury update on Celtics' Kristaps Porzingis
Watch: Bruins strike first in Game 6 with incredible backhand goal
Dodgers make series of moves involving notable players
Giants rookie CF to undergo season-ending labrum surgery
Hurricanes not expected to re-sign defenseman, center
Paul Skenes makes incredible Wrigley Field history in second-career MLB start
Maple Leafs tab former Stanley Cup winner as new head coach
NFL insider expands on competition between Steelers QBs Russell Wilson, Justin Fields
NFL sets outrageous prices for Eagles-Packers Brazil game
Scottie Scheffler shoots improbable 66 after warming up for PGA Championship in a jail cell
Nuggets star has worrying comment about latest injury
Broncos 'very unlikely' to bring back former NFL interceptions leader
Greg Olsen offers broadcasting advice to Tom Brady
Yankees' Juan Soto reacts to Hal Steinbrenner contract talk
Mets star has theory about closer Edwin Diaz's recent struggles
Scottie Scheffler arrested, still makes PGA Championship tee time
Timberwolves chew up Nuggets to force Game 7
Rangers secure spot in conference finals after stunning third-period comeback over Hurricanes
Xander Schauffele makes history in first round of PGA Championship
Yankees' Hal Steinbrenner shares massive Juan Soto contract update