It was the Astros' sixth consecutive loss in Denver, where they are 26-40 all-time heading into Thursday's series finale, which will be Houston's last in the ballpark as a member of the National League.
"It seems like here the runs don't stop," left fielder J.D. Martinez said. "You have to keep piling on runs. A five-run lead isn't safe in the ninth when you're playing here, just because the outfield is big and everything seems to find green. It's an offensive battle when you're here."
Gonzalez homered in three consecutive at-bats against three different Astros pitchers: Starter Lucas Harrell in the fifth, reliever Xavier Cedeno in the sixth and reliever David Carpenter in the eighth. Gonzalez became the 13th Rockies player to hit a franchise-record three homers in a game.
"All I've been doing is just trying to put good swings on the ball," Gonzalez said. "I'm not looking for a home run, just looking to hit the ball hard, and just make sure the ball is in the strike zone. I saw three around the strike zone and put really good swings on them. Home runs just happen."
The Astros outhit the Rockies, 15-14, but all but two of their hits were singles. Martinez, Jose Altuve and Chris Johnson each had three hits. Houston was 4-for-17 with runners in scoring position and stranded 13 runners on base, compared to just four left on base for Colorado.
"You clear the bases with home runs," Astros manager Brad Mills said.
Harrell, who outdueled Kershaw in his previous start, was rocked for nine earned runs and 10 hits in five innings. His sinker, which has enabled him to lead the league in groundball outs, wasn't as effective as it was against the Dodgers.
"It didn't go so well," Harrell said. "When I needed a ground ball I got it a few times, but they seemed to find holes."
Harrell (4-4) got himself in trouble in the first inning by walking a pair of batters on 3-2 pitches, and Cuddyer made him pay by hitting a two-out grand slam to right field. Mills asked the umpires to look at replay to get the borderline homer overturned, but the call was upheld.
"The big thing in that first inning was those two walks," Mills said. "Both of them were off a 3-2 count, but that was the big thing to load it up for Cuddyer. I thought his stuff was real good, though. He had real good sink of his fastball. He was just trying to command it and he wasn't getting some of those calls down and he got behind a couple of guys and they were able to get on."
The Astros rallied from 5-1 down to tie the game in the third inning, pulling even on a two-out double by Chris Snyder that gave Harrell a clean slate.
"It got us back square and you can start back over from there," Snyder said. "I made a trip out to the mound [to start the third] and said, 'We worked to get you back in the game. Let's use this as a time to lock it in and go to work.' He had a great inning that inning. I know [Troy Tulowitzki] led off with a double, but he left him there. After that, the wheels fell off."
Gonzalez homered to start the fifth to put Colorado ahead, 6-5, and Harrell was pulled after the first three batters in the sixth singled. Dexter Fowler then hit the first pitch from Rhiner Cruz over the right-center field wall for a three-run homer, stretching the lead to 10-5.
"Balls that were up got hit hard, balls that were down found the hole," Snyder said. "It was one of those things you can't explain. I've been is way too many times in this park. I've been on the good end many times and I've been on the bad end many times. That was the bad end of it."