The Astros have won back-to-back games for the first time in more than three weeks. They will try for their first three-game winning streak since early April when they open a four-game series at the Los Angeles Angels Friday.
Colorado held a 3-1 lead prior to Houston's big inning, in which the Astros batted around while scoring six times on six hits.
Houston put runners on second and third with nobody out before J.D. Martinez singled in the first run of the inning.
Carlos Pena drove in another run with an infield single, after which Carter hit a three-run homer. Dominguez followed one out later with a solo shot.
Starter Lucas Harrell (4-6) survived 5 2/3 innings to get the win, even though he allowed eight hits and walked four while giving up three runs.
Hector Ambriz came on in the ninth after Wesley Wright had given up a leadoff single. The Rockies scored a run in the inning, but Ambriz earned his first major league save in 79 career relief appearances.
Juan Nicasio was charged with the loss after giving up five runs on seven hits in five innings.
Susan Sarandon 'very excited' about daughter's pregnancy
Senate Democrats to pull all-nighter on climate change