Brendan Rodgers had two hits and Charlie Blackmon singled twice in his return to the Colorado lineup, Matt Koch (2-0) pitched an inning of relief and Justin Lawrence struck out the side in the ninth for his 10th save. The Rockies snapped a five-game losing streak.
Christian Walker homered, doubled and drove in three runs and Merrill Kelly struck out a season-high 11 batters for Arizona.
Blackmon started Colorado's winning rally in the eighth with an infield single, and Tovar and Ryan McMahon followed with singles to load the bases with no outs. Scott McGough relieved Joe Mantiply (1-1) and got the first out but Rodgers tied it with a two-run single up the middle.
Nolan Jones followed with another single to put Colorado ahead, and Alan Trejo's pinch-hit single made it a two-run lead.
The Diamondbacks got on the board in the top of the first inning. Carroll led off the game with a walk and scored on a two-out double by Walker.
They added to their lead in the second when Alek Thomas and Gabriel Moreno hit back-to-back doubles off of starter Chris Flexen.
It stayed 2-0 until the fifth inning when Montero homered to center field, his fifth of the season.
Arizona responded in the top of the sixth inning. Flexen got the first out before Lourdes Gurriel Jr. singled and Walker homered just over the scoreboard in right field to make it 4-1. It was his 25th of the season.
Flexen (1-6) allowed four runs on five hits and struck out six in six innings.
Tovar answered with a solo shot leading off the bottom of the inning, his 13th of the season.
Kelly left after six innings after allowing two runs on five hits. His 11 strikeouts were one shy of his career best, which came May 20, 2021, at the Los Angeles Dodgers.
—Field Level Media