DENVER -- Jamey Carroll collected three hits and didn't need a fourth to drive in the winning run.
Carroll figured that with Todd Helton on deck, Wheeler was going to throw something in the lower half of the strike zone to try to induce a ground ball "because that is what I've been hitting for the last week."
"He just didn't do it and made the last pitch high and that was the win," Carroll said.
Astros closer Brad Lidge (0-2) blew his third save in 12 chances. He entered with a 4-3 lead but gave up a leadoff double to Brad Hawpe, who scored the tying run when third baseman Morgan Ensberg overthrew first base on Clint Barmes' sacrifice bunt.
"I picked it up, I didn't have a seam, I launched it," Ensberg said.
The ball was wet, he said, but "I threw it incredibly poor. I didn't grab a seam. You have to grab a seam in that situation and you have to throw a strike."
Which is what Wheeler didn't do himself when it counted most.
"You don't walk the winning run in under any circumstances," Wheeler said. "It wasn't the best of situations, but it is inexcusable to walk a run in."
Barmes ended up at second on Ensberg's errant throw and was sacrificed to third by Choo Freeman. Pinch-hitter Eli Marrero drew a five-pitch walk, and Wheeler replaced Lidge.
After Marrero took second on defensive indifference, the Astros issued Cory Sullivan's first career intentional walk to load the bases with one out.
Carroll, who went 3-for-4, worked the count full and then watched Wheeler miss high and outside with ball four.
Ramon Ramirez (2-0), who allowed one hit and struck out three in two innings, got the win. One of the runs off Lidge was unearned because of Ensberg's error.
Helton went 1-for-4 in his first game since going on the 15-day DL last month with an intestinal infection that landed him in the hospital for three days.
"The game was still a little fast for me tonight," Helton said. "I don't feel 100 percent, but I'm very close."
Preston Wilson's three RBIs staked Taylor Buchholz to a 4-0 lead in his fourth major league start. He allowed three runs - two earned - and six hits in seven-plus innings.
Rockies starter Byung-Hyun Kim allowed four earned runs and seven hits in seven innings. He walked one and tied his career high with nine strikeouts in his second start after beginning the season on the disabled list with a strained right hamstring.
Kim retired the last 10 batters he faced, setting the table for Colorado's comeback. But he also allowed three runs in the third inning, including a two-run single by Wilson that had Rockies manager Hurdle kicking himself.
Wilson, who also had an RBI single in the first inning, was 11-for-15 lifetime off Kim when he came up with first base open. Hurdle decided not to walk him because it was still early.
"Don't think I wasn't going to kick myself all the way home if this ends up 4-2," Hurdle said. "Now he's 12-for-16 and he drives in two runs. I'm screaming. Everybody's looking at me and I'm just bounce-kicking myself. You just don't think those things are going to happen.
"You've got to give Preston a lot of credit. He finds ways to put the ball in play off this guy and get hits. Those are Nintendo numbers."
The Rockies optioned OF Ryan Spilborghs to Triple-A Colorado Springs to make room for Helton. ... Craig Biggio, whose RBI single in the fourth made it 4-0, has hits in 40 of his 45 appearances at Coors Field.