One bad inning was all New York needed to send the Atlanta Braves to another one-run loss.
Carlos Beltran hit a two-run double off Hudson in the Mets' four-run third inning, and New York held on for a 4-3 victory Saturday.
"It's been a while since we strung together a bunch of hits like that," Mets manager Willie Randolph said. "It was good to see them attack a really fine pitcher and put the ball in play. We've been struggling a little bit there."
John Maine pitched five effective innings and David Wright snapped out of a slump with two hits for the Mets, who had lost five of six.
New York also earned its first victory in four games against Atlanta this year.
"Any time you go out there and beat the Braves, that's important," Ryan Church said. "They are a good ballclub."
Atlanta dropped to 0-8 in one-run games, the only team in the majors without a win in that situation.
The Braves played without Chipper Jones, who was a late scratch after feeling spasms in the middle of his back in the clubhouse before the game.
Martin Prado replaced Jones at third base and did an admirable job after a first-inning error. He had two hits and made a defensive play that possibly prevented a run from scoring.
Prado's RBI single off slumping right-hander Aaron Heilman cut it to 4-3 in the sixth, but four Mets relievers combined to throw three scoreless innings.
Billy Wagner worked the ninth for his fifth save in five opportunities and has not allowed a hit in nine innings this season.
Prado led off the ninth with a deep drive to center that Beltran caught on the warning track.
"Almost hit it out," Braves manager Bobby Cox said. "Another five feet, it's gone."