Wade Davis worked the ninth inning for his major-league-leading 14th save.
Gray (4-4) allowed four hits, walked one and struck out eight to help Colorado win its sixth straight. Gray's outing was the ninth consecutive quality start for the Rockies, a franchise record.
Justin Upton homered and starter Andrew Healey (1-2) allowed two runs in six innings to take the loss for the Angels.
Gray needed 28 pitches to get out of the first inning before he settled down. He retired 11 in a row after walking Andrelton Simmons to load the bases in the first. Martin Maldonado broke the streak with a one-out single in the fifth.
DJ LeMahieu, who was activated off the 10-day disabled list prior to the game, gave the Rockies the lead in the third. Tony Wolters singled, Gray sacrificed him to second and LeMahieu followed with a single to right field to make it 1-0.
LeMahieu had been out two weeks due to a right hamstring strain.
Colorado made it 2-0 in the sixth when Story led off with a triple and scored on Gerardo Parra's one-out single to left. Heaney then hit Noel Cuevas with a pitch, but the inning ended when Wolters lined out to Mike Trout, with the center fielder doubling up Parra at second.
The Angels threatened in the seventh inning when Simmons led off with a single and moved to second on a groundout. That brought up rookie phenom Shohei Ohtani -- who didn't start because there is no designated hitter in National League ballparks -- as a pinch hitter.
Ohtani worked the count to 3-1 before grounding out to first for the second out. Gray then got Martin Maldonado to fly out to end the inning.
Gray retired 18 of the last 20 batters he faced.
Story's two-run double in the seventh gave Colorado a four-run cushion.
Following a Trout walk in the eighth, Upton hit a two-run homer off Adam Ottavino.
--Field Level Media
LA Angels | Colorado | |
Andrew Heaney | Player | Jon Gray |
Loss | W/L | Win |
6.0 | IP | 7.0 |
5 | Strikeouts | 8 |
5 | Hits | 4 |
3.00 | ERA | 0.00 |
LA Angels | Colorado | |
Justin Upton | Player | Trevor Story |
2 | Hits | 2 |
2 | RBI | 2 |
1 | HR | 0 |
5 | TB | 5 |
.500 | Avg | .667 |