A crowd of 20,338 witnessed the most innings ever at Citi Field in a game that lasted six hours and 25 minutes.
The Marlins, meanwhile, matched a club record for most innings. They previously played 20 innings on April 27, 2003, a day they lost, 7-6, to the Cardinals. That contest lasted six hours and seven minutes, which had been a record until Saturday.
"It's a lot of baseball," said manager Mike Redmond, a Marlins player in 2003. "A long day. It's always better to win those."
After being swept at Philadelphia, the Marlins are now 1-3 on the road trip. They are 2-5 in extra innings. Their other win was against the Mets, in 15 innings, on April 29 at Marlins Park.
The test of endurance mercifully came to a close in inning No. 20. New York's Shaun Marcum, throwing his eighth inning of relief, gave up one-out singles to Placido Polanco and Rob Brantly. Hechavarria singled to center, giving the Marlins their seventh comeback win of the season.
"Guys were pumped," Redmond said. "I've been a part of those games. You get so tired, and a little bit frustrated. Guys get to swinging early in the counts, and everybody is trying to get the big hit. When you finally get it, it feels good."
Kevin Slowey, initially scheduled to start on Tuesday, made his first relief appearance since he was with the Twins on May 20, 2011. Yet, his seven innings are his most since he threw seven innings at Philadelphia on May 5, a span of seven starts.
"I know the season has been tough for us, but this is a great win, a great moment when you see guys grow up and persevere, and find a way to win a game," Slowey said. "That's what we've been searching for. It's good."
Slowey, who threw more innings than starter Jose Fernandez, collected the win. And Steve Cishek worked a perfect 20th inning for his sixth save in eight chances.
"It means a lot. It's huge," Cishek said. "We've lost so many close games and so many walk-off games. We really needed something to go our way. This is big for us. It takes a huge weight off us. I'm so glad it went our way."
Each team used eight pitchers, and there were 561 total pitches thrown to 31 different batters.
"When a game gets to be like that, sometimes when you're battling for a lot of innings, or you're battling the weather, and it's rough and you're grinding, a lot of times it comes down to the team that can have the most fun out there," catcher Brantly said.
Both teams certainly had their chances, especially in extra innings.
The Mets were primed in the 18th, putting runners on first and second with one out, but Slowey closed the door by striking out Lucas Duda before retiring Marcum on a fly ball to right.
Justin Turner opened the 17th for New York with a double to right, but was unable to advance any further.
The Mets are a mind-boggling 0-for-19 with runners in scoring position.
"This is as tough as it gets," Marcum said. "Not only because I wasn't expecting to pitch. We had so many opportunities, and we didn't capitalize."
In the 14th inning, Slowey got into trouble after hitting Marcum with an 0-2 pitch. But New York stranded David Wright on second.
A.J. Ramos, who recorded the final out of the 10th and remained in the game, issued a four-pitch walk to Daniel Murphy to open the 12. Wright tapped a slow roller to third, and Polanco went to second base for the force, but Murphy was safe on the fielder's choice. Duda's line drive to center advanced Murphy to third.
The inning ended with a collision and double play at the plate. Marlon Byrd lifted a fly toward the line in right field. Marcell Ozuna made the catch and made an accurate one-hop toss to the plate. Brantly controlled the hop and applied the tag while being knocked over. From the ground, Brantly showed he held onto the ball for the out.
Ozuna now has five outfield assists.
"I saw that Ozuna had a good bead on the ball, and he has a good arm," Brantly said. "He was going to have to make a pretty acrobatic throw. He threw it, and he made a perfect strike, and gave me enough time to get the ball and put the tag on him.
"I felt I went with the blow really well. It was just a perfect throw, and a great job by Ozuna."
The game featured two of the rising young right-handers in the National League, and neither disappointed.
Fernandez, the 20-year-old rookie, gave up one run on three hits with seven strikeouts in six innings. Matt Harvey of the Mets worked seven innings, allowing one run on six hits with six strikeouts. Harvey actually came out to start the eighth inning, but he was removed before throwing a pitch due to lower back tightness.
Ironically, Fernandez and Harvey were the starters in the April 29 marathon.
After Friday's game was rained out, the Marlins staff decided to shuffle up the rotation and push Slowey's start from Saturday until Tuesday.
"Someone in the room [joked], 'We'll count on you for the first couple of innings, or the late teens,'" Slowey said. "We all laughed. Sure enough, the late teens came around."