Diaz, Elehuris Montero and Coco Montes each had three hits and Jurickson Profar also homered for Colorado.
Shohei Ohtani and Mike Trout homered for the Angels, who lost their third straight game after winning 11 of their previous 14
With Colorado trailing 4-3 in the bottom of the eighth, Harold Castro and Ezequiel Tovar singled off Sam Bachman (1-1), putting two on with one out.
Chris Devenski took over on the mound, and Ryan McMahon reached on a fielder's choice when shortstop Andrew Velasquez failed to catch a throw to second from first baseman Jared Walsh. Diaz then clobbered a 1-1 changeup over the fence in center for his ninth homer of the season.
Pierce Johnson (1-3) struck out Ohtani with two on and two outs to end the top of the eighth.
Justin Lawrence fanned two in a perfect ninth for his third save.
Ohtani and Trout both hit 434-foot homers to start the fifth inning off Kyle Freeland, giving the Angels a 4-2 lead
Ohtani's major-league-best 25th homer went to right-center, while Trout's 16th homer was a high fly over the fence in center.
The Rockies moved within 4-3 in the sixth on Tovar's run-scoring single
Angels starter Patrick Sandoval allowed three runs and 10 hits over five-plus innings. He struck out three and walked one
Freeland gave up four runs (three earned) and nine hits in five innings. He struck out three and walked two.
Profar homered to left-center on the first actual pitch of the game from Sandoval. Profar was flagged for delay and given an automatic strike before hitting his sixth blast of the season.
In the second inning, Los Angeles' Hunter Renfroe singled and Kevin Padlo followed with a double off the fence in left-center. Profar fumbled the ball to allow Renfroe to score as Padlo ended up at third. Luis Rengifo followed with a sacrifice fly to give the Angels a 2-1 lead
The Rockies tied it in the bottom of the second on an RBI single by Montes
--Field Level Media