Chris Snyder hit a three-run homer in the bottom of the second to extend Houston's lead to 5-0, and the Astros would eventually win 6-3.
The win was Houston's second over the Mets in as many days, giving the Astros their first series win since the season-opening series against the Colorado Rockies.
J.A. Happ got the start, giving up three earned runs over 6 1/3 innings. Snyder went 1-for-3. His second home run followed a two-run blast by Jed Lowrie in the first inning. Jose Altuve and Brian Bogusevic each went 2-for-4 as the only Astros with multiple hits. J.D. Martinez went 1-for-3 with an RBI. Brett Myers pitched a perfect ninth inning to pick up the save.
The Astros have won four of their last six games, moving into fifth place in the NL Central.