NEW YORK -- After blowing a save chance about 19 hours earlier, Mike Gonzalez was determined.
"It happened last night. It wasn't going to happen again today," the Atlanta Braves reliever said. "We work too hard."
Gonzalez held on -- barely.
After allowing Jose Reyes' leadoff double in the 12th inning and Luis Castillo's sacrifice, Gonzalez struck out Carlos Beltran and froze Gary Sheffield with a called third strike, preserving an exhausting 8-7 win over the New York Mets on Wednesday.
"I'm glad that game is over," Atlanta manager Bobby Cox said. "I think both teams were out of pitchers, position players and just about everything else."
Fernando Tatis hit a fourth-inning grand slam on the second pitch from reliever Buddy Carlyle. Sheffield tied the score at 7 in the eighth with his second home run of the season and No. 501 of his career.
Reyes had three doubles but again cost the Mets with foolish baserunning. A day after he was thrown out at third trying to stretch a two-run double that pulled the Mets within a run in the eighth, Reyes was out trying to cross to third on a grounder to shortstop with the score tied and one out in the seventh.
Then, he admired his 12th-inning drive, thinking it was a home run and failing to run hard out of the batters' box. It missed being a home run by about 1½ feet.
"We are going to have to pay close attention to those things," Mets manager Jerry Manuel said. "In order to be a good team and a speed team, you need to be aggressive but you have to also play smart. And we're not playing very smart at this point."
Manuel didn't fault Reyes for not getting to third on his hit in the 12th.
"It looks like the harder he runs, the more trouble he gets in," Manuel said.
Reyes called the seventh-inning blunder "bad baserunning" but didn't fault himself for his lack of hustle in the final inning.
"I think if you try to hone him in," Sheffield said, "he might not play as well. He has to be himself, and that's the way he plays."
Before a crowd of 40,555, the largest at Citi Field since the April 13 opener, the Mets lost for just the second time on an eight-game homestand before heading out on a 10-game trip to San Francisco, the Los Angeles Dodgers and Boston. Manuel said the team might make a decision in a day or two whether to put first baseman Carlos Delgado on the disabled list because of an injured right hip.
Atlanta headed home following a 6-2 trip against NL East foes.
"Huge win for us after last night's game was such a downer," said Chipper Jones, who hit two of Atlanta's seven doubles and drove in two runs.
With the score 7-all, Prado hit his second homer of the season, sending a 3-2 pitch about six rows deep into the left-field seats. It was the first major league decision for Takahashi, a 40-year-old rookie who was New York's eighth pitcher of the day.
Jeff Bennett (1-1) got six outs to win Citi Field's second extra-inning game, one day after ending the first with a 10th-inning walk to Beltran. Gonzalez fell behind Sheffield 2-0 and then got the final out on a backdoor slider for his sixth save in eight chances.
"If they get the game tied against him, then we're in all kinds of dire straits," Jones said.
Doubles by Prado and pinch-hitter Kelly Johnson off J.J. Putz gave Atlanta a 7-6 lead in the eighth, but Sheffield homered on a chest-high fastball in the bottom half against Rafael Soriano. Sheffield's other homer this season tied an April 17 game against Milwaukee in the seventh.
"I thought I'd never hit another one," he said.
New York has 14 homers to go along with 13 triples at pitcher-friendly Citi Field -- Tatis' was the Mets' third homer to center at the $800 million ballpark. ... Tatis has seven slams -- in 1999 he became the first player to hit two in one inning. ... Mets third baseman David Wright made his fifth error, allowing Jones' two-hopper to go through his legs in the seventh. Garret Anderson followed with a sacrifice fly that tied it at 6. ... Mets starter Jonathon Niese allowed five runs and seven hits in 4 2/3 innings before being optioned back to Triple-A Buffalo. New York purchased the contract of right-hander Nelson Figueroa. ... Atlanta starter Jo-Jo Reyes gave up five runs in three-plus innings, raising his ERA to 6.58. He has allowed 16 runs over 14 1/3 innings against the Mets in four career starts.