The Rockies took the first game of a key four-game series between the National League wild-card leader, Arizona, and second-place Colorado. The Rockies moved four games behind the Diamondbacks and 3 1/2 ahead of St. Louis for the second wild card slot.
Arenado drove in four runs with a double and his 33rd home run of the season, and the Rockies won their seventh straight road game and fifth overall.
Left-hander Tyler Anderson, activated from the 60-day disabled list on Sunday, pitched four scoreless innings in relief for the victory. Anderson (4-5) allowed a hit with four strikeouts.
The Rockies' winning rally started with two outs in the eighth. D.J. LeMahieu tripled over the top of an extreme defensive shift toward right field and Carlos Gonzalez walked against Diamondbacks reliever Jake Barrett (1-1).
Arenado's home run followed, giving him a major-league leading 123 runs batted in on the season. He was seen exchanging words with a vocal fan sitting near the visiting dugout after crossing home plate.
The Diamondbacks came back with two runs in the bottom of the eighth off Rockies relievers Jake McGee and Pat Neshek. Paul Goldschmidt's ground out drove in Chris Iannetta, and hot-hitting J.D. Martinez singled in A.J. Pollock to cut Colorado's lead to 5-4.
Martinez, on the same day he was named NL Player of the Week for last week when he batted .429 with seven home runs, went 3-for-4 and scored twice.
Holland stranded runners at second and third, inducing a Pollock ground out to end the game.
Diamondbacks starter Zack Greinke allowed two runs on five hits with six strikeouts over seven innings.
Greinke, with his fifth-inning strikeout of Anderson, reached 200 strikeouts on the season for the sixth time in his career, all six times since 2009.
Arenado, known for outstanding defense, made the play of the night when he dived to his right to snag a one-hopper headed down the left-field line off the bat of Pollock in the sixth. Arenado sprang to his feet and threw a one-bouncer to first base just in time for the out.
The Rockies' Charlie Blackmon, with his first-inning double, became the sixth leadoff hitter since 1914 to collect 80 or more extra base hits in a season.
Rockies: Starting pitcher Kyle Freeland was struck in shoulder by a line drive off the bat of Martinez in the top of the fourth, and left the game after being checked by a trainer though he was able to stay on his feet. The Rockies announced later that Freeland had a left shoulder contusion.
Rockies: RHP Jon Gray (7-4) has a 2.55 earned run average over his last seven starts, but he's 1-2 with 5.40 career ERA against Tuesday's foe, Arizona.
Diamondbacks: RHP Taijuan Walker (9-7) faces Colorado with the Diamondbacks having won in each of his past four starts.