Jed Lowrie hit a go-ahead RBI single in the eighth inning and the Astros downed the Mets, 4-3, on Monday in the opener of a three-game series.
New York starter R.A. Dickey carried a no-hitter through five innings, but Houston took a 3-0 lead in the sixth on Travis Buck's RBI groundout and Matt Downs' two-run homer.
"He had it working tonight," Lowrie said of Dickey.
The Mets tied the game in the seventh against Astros' starter Bud Norris, but Jordan Schafer led off the eighth with a single, stole second and scored on Lowrie's base hit off of Manny Acosta (0-2).
Brett Myers threw a 1-2-3 ninth to earn his fifth save of the season.
Schafer, who has reached base safely in all 23 games this season, broke up Dickey's no-hitter with a leadoff single, then advanced to second on Jose Altuve's sacrifice bunt. Lowrie placed runners at the corners with a shallow fly to left before Buck's fielder's choice groundout made it 1-0. Downs followed with a blast down the left field line.
"To Downs I left that (knuckleball) a little bit up," said Dickey. "It didn't catch and he hit it out."
David Wright and Ike Davis began the seventh with back-to-back singles and advanced on Mike Baxter's deep fly out before Andres Torres pushed a run across with an infield single. A Lucas Duda two-out walk loaded the bases and Kirk Nieuwenhuis delivered a two-run single down the right field line to tie the game.
Davis singled with two down in the eighth, but Fernando Rodriguez (1-3) entered and retired Scott Hairston to end the inning.
Schafer's 23-game stretch is the Astros' longest since Ricky Gutierrez reached base safely in the first 23 games of the 1998 season. The club record is 25 games, set by Denis Menke in 1969...The Mets officially activated Torres from the 15-day disabled list on Monday. He landed on the DL on April 6 with a strained left calf.