The back-and-forth finish came after the teams were scoreless going into extra innings, highlighted by splendid performances from starters Zack Greinke and Antonio Senzatela.
The right-handers had nearly identical lines: They both went eight innings, allowed just three singles and walked none. Greinke struck out seven for Houston, one more than Senzatela.
''He had an awesome lineup over there off-balance, looking for breaking balls and he'd throw a fastball,'' Astros manager Dusty Baker said. ''It's like he was almost in their heads, what they were looking for.''
After both teams scored in the 10th, Abraham Toro started Houston's 11th on second base and the Rockies intentionally walked pinch-hitter Carlos Correa. A sacrifice bunt by pinch-hitter Garrett Stubbs moved up the runners and Straw singled to left field off Jairo Diaz (0-1).
Andre Scrubb (1-0) walked one in a scoreless 11th for the win.
The Astros wrapped up a 7-1 homestand after losing five in a row.
''This does a lot for our confidence,'' Baker said. ''We've still got a couple of guys that we've got to get going, but we've some guys swinging better, playing better and we've gotten outstanding defense and good pitching.''
The Rockies have dropped five of their last six.
Raimel Tapia hit an RBI single with two outs in the 10th to put Colorado up 1-0. A sacrifice fly by Kyle Tucker scored Alex Bregman and tied it in the bottom of the 10th.
The eight innings matched a career high for Senzatela, who last got through eight on May 26, 2017, against St. Louis. And he's just the third pitcher in Rockies history to pitch eight or more scoreless innings and not get a win.
''That was one of the best games I've seen him throw from start to finish,'' manager Bud Black said. ''When you go eight innings on the road against a very good team and you're going head to head with Zack Greinke and you're matching him, it's pretty special stuff.''
Enoli Paredes struck out two in the ninth for Houston and Daniel Bard struck out one in the ninth to send it to the 10th.
Greinke allowed two singles in the first inning and Charlie Blackmon singled to start the fourth, but still faced the minimum in that inning after Nolan Arenado grounded into a double play.
Grienke didn't allow a baserunner after that, sailing through the next four innings with the help of several groundouts. He finished his outing strong when Tapia grounded out to start the eighth before Greinke struck out Ryan McMahon and Sam Hilliard on just seven pitches to end his day.
Greinke has walked just four batters this season and said that has been an important factor in his success at age 36.
''Since the first start I've been locating really well and that's why I've been able to have some success,'' he said. ''Stuff isn't amazing anymore, but it's OK and if I can locate that helps out.''
Senzatela didn't allow a hit until a single by Bregman with two outs in the fourth inning. Yuli Gurriel followed with a single, but Tucker grounded into a forceout to end the inning.
The Astros got a single from Straw with one out in the sixth and he stole second base. But he was left stranded when Senzatela retired Josh Reddick and Bregman to end the inning.
That was the first of eight straight batters Senzatela retired to wrap up his outing.
Rockies: CF David Dahl was scratched from Tuesday's lineup because of tightness in his lower back. He was replaced Hilliard.
Astros: Houston placed DH Yordan Alvarez on the injured list with right knee discomfort retroactive to Sunday. Alvarez, last year's AL Rookie of the Year, missed the beginning of the season after being diagnosed with COVID-19 and played just two games before he was shelved again because of the knee problem. ... OF George Springer was scratched from Tuesday's lineup because of soreness in his right wrist. Springer was injured sliding on Monday night. ... Baker said Tuesday that right-hander Justin Verlander played catch on Monday for the first time since he was injured and felt good. Verlander has been on the injured list since July 25 with a strained right forearm.
The Astros lead the majors with six extra-inning games this season. Houston hasn't fared well in those games and Tuesday was just the team's second victory in extras.
Houston's Framber Valdez (1-2, 1.90) opposes Ryan Castellani (0-0, 1.04) when this series moves to Denver for two games starting on Wednesday night.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Copyright 2020 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.