The runs for both teams came on the long ball. Rougned Odor hit a two-run home run in the second inning off Doug Fister and Tyler White hit a solo laser off Cole Hamels.
But the game wasn't decided by the home runs, it was decided by Astros bats not coming through in the clutch.
Jose Altuve and George Springer led off the game with a pair of hit-by-pitch but the inning ended with a double play strike out-throw out of George Springer at second.
The Astros loaded the bases in the second with three singles from Colby Rasmus, Evan Gattis, and Carlos Gomez. But the Astros couldn't score a run after Marwin Gonzalez hit a short fly ball to right field. Carlos Gomez was caught off the bag between first and second as the throw came in from the outfield.
Gomez ran himself into a rundown, forcing Rasmus to attempt to score when he originally held up on the throw. Rasmus was tagged out.
Springer ended with a whimper in both the fifth and seventh innings with runners in scoring position and two outs. Gattis grounded into another double play in the sixth inning.
Houston had the prime chance to tie the game in the eighth. Carlos Correa doubled to right center to lead off the inning. But White, Rasmus and Gattis couldn't get the job done.
For everything that was bad with the hitting for the Astros, the pitching was stellar. Doug Fister posted his first quality start of the season, allowing two runs on seven hits over six innings. Will Harris struck out the two of three batters he faced. Tony Sipp did his job for one batter, striking out Nomar Mazara.
Ken Giles worked around an error, an Adrian Beltre double and a walk with no outs -- retiring the next three batters in order.