HOUSTON (AP) -- Jordan Schafer has reached base safely in every game for the Houston Astros this season.
More special than that is what the leadoff hitter can do once he's on base.
Schafer had two hits and scored twice, including the go-ahead run on a single by Jed Lowrie in the eighth inning to help the Astros to a 4-3 win over the New York Mets on Monday night.
Matt Downs had a two-run homer in the sixth inning as the Astros started a nine-game homestand.
The game was tied 3-all when Schafer reached on an infield single to start the eighth. He stole second with one out and scored on the hit by Lowrie off reliever Manny Acosta (0-2).
"I'm just trying to get on base and give the guys behind me opportunities so we can score runs," said Schafer, who has eight stolen bases this season. "My job leading off is to get on base and steal bases or bunt guys over or whatever. So ... I try to cause a little bit of havoc on the bases and score some runs."
Schafer has scored 17 runs this season, most on the team.
Downs' homer came in Houston's three-run sixth after New York knuckleballer R.A. Dickey began the game with five hitless innings.
The Mets tied it by scoring three times in the seventh, including a two-run single by rookie Kirk Nieuwenhuis .
Fernando Rodriguez (1-3) got the last out of the eighth and Brett Myers pitched a perfect ninth for his fifth save.
David Wright and Ike Davis hit consecutive singles to start the seventh and Wright went to third on a flyout by Mike Baxter .
An RBI single by Andres Torres , activated from the disabled list before the game, got New York within 3-1. Pinch-hitter Lucas Duda walked with two outs to load the bases before Nieuwenhuis' single chased starter Bud Norris .
Wilton Lopez retired Ruben Tejada to end the inning.
The Mets have scored 20 runs with two outs in the past seven games.
Dickey gave up three hits in the sixth before he was replaced by Acosta for the seventh.
"Tonight was the night that I literally threw one pitch that I didn't like, and it got hit out of the park," Dickey said. "That normally doesn't happen. One more wiggle to the knuckleball there, and he pops that up or hits it off the end. That is the only pitch I would take back. Everything else I feel like I am in a good place with it."
Norris allowed seven hits and three runs with seven strikeouts in 6 2-3 innings.
"He did a good job of putting us in position when we couldn't get anything going against the guy who was no-hitting us," Houston manager Brad Mills said.
Schafer got Houston's first hit with a soft single to left field leading off the sixth. He has reached safely in each of Houston's 23 games, tied for the second-longest streak to start a season in franchise history.
"He's been the catalyst for us just about this whole season, and it's been huge," Mills said.
Schafer reached second on a sacrifice bunt by Jose Altuve and went to third on a bloop single by Lowrie that dropped in the outfield not far from third base. Schafer had to slide to get there safely.
Houston went ahead 1-0 on Travis Buck 's RBI groundout. Downs followed with his second homer, after hitting his first of the season on Sunday.
Brian Bogusevic reached on an error by second baseman Daniel Murphy after the home run, but was caught stealing to end the inning.
Norris retired the first five Mets before a single by Baxter with two outs in the second. The right-hander struck out Torres to end that inning and pitched a 1-2-3 third.
Norris plunked Tejada with a pitch to start the fourth and Tejada advanced to second on a wild pitch when Norris tripped on the mound with one out. But Norris retired the next two batters to escape the inning.
Buck robbed Torres of a hit in the fifth when he stretched out while sprinting to catch a long fly ball just before the wall in center field.
Nieuwenhuis singled to start the sixth, but was picked off at first while Tejada was batting.
NOTES: Mets starter Mike Pelfrey will have season-ending Tommy John surgery on his right elbow Tuesday. ... Duda was out of the starting lineup because of flulike symptoms. Mets manager Terry Collins said he wasn't feeling much better and he doesn't expect him to play Tuesday. ... Houston 1B Carlos Lee sat out for the third straight game with a sprained left ankle.