MIAMI -- Ike Davis finished off his strong second half with another home run.
Davis hit his 32nd home run, his 20th after the All-Star break, to help lead the New York Mets beat the Miami Marlins 4-2 Wednesday in the season finale.
"It's the way I expected to play the whole year," Davis said of his second half. "I just wasn't fortunate enough to start off hot, but that's the way baseball goes sometimes."
Davis overcame a shaky start to finish with a .227 batting average and a career-high 90 RBIs.
"The resurgence of Ike in the second half has been one of the positives we've had in the season," Mets manager Terry Collins said.
Mets starter Jeremy Hefner (4-7) tossed 7 1/3 innings, allowing two runs, five hits and two walks. He struck out seven in the second-longest outing of his career.
Bobby Parnell pitched the ninth for his seventh save in 12 chances, extending his career-best scoreless inning streak to 11 1/3 innings.
New York (74-88) finished fourth in the National League East, ahead of only Miami (69-93). The Mets were 46-40 at the All-Star Break before going 28-48 in the second half.
"There was a lot of good things to take out of the first half and a lot of bad things to take out of the second half," said David Wright, who became the Mets all-time leader in runs, walks, and RBIs this season. "We obviously have plenty of room for improvement, but at the same time we know we got a little taste of what it's like to win in the first half."
The 93 losses for the Marlins were the most since losing 98 in 1999 and the fourth-most in the franchise's 20 years of existence. The disappointing season could cost Ozzie Guillen his job.
"I'd love to come back," Guillen said. "I think it's an opportunity, but at the end of the day it is what it is. We have to look and see what's going to happen. Right now I'm still a Marlin and I'd love to be a Marlin. Like I said, with the year we had, you never know."
Ruben Tejada had three hits for the Mets, giving the 22-year old shortstop 14 three-plus-hit games.
Marlins right-hander Tom Koehler (0-1) made his first career start, and he allowed three runs and six hits in five innings. He struck out three.
"It was very exciting," Koehler said. "As a starter my whole career in the minors, I have prepared for this moment for a while."
Jose Reyes stole his 40th base for the Marlins, giving him his highest stolen-base total since he swiped 56 in 2008 while with the Mets.
Davis' home run to left field off Chad Gaudin gave the Mets a 4-0 lead in the top of the sixth.
Miami's Donnie Murphy doubled in the bottom of the sixth and scored on a base hit by Gorkys Hernandez to cut the Marlins' deficit to 4-1.
The Mets loaded the bases in the eighth, but A.J. Ramos came in to get the final two outs to get the Marlins out of the jam.
A passed ball pushed across Miami's second run of the game to pull the Marlins within 4-2. Miami had an opportunity to get even closer after back-to-back walks issued by Elvin Ramirez to load the bases with two outs.
Manny Acosta relieved Ramirez to face Donovan Solano, Tuesday's hero, who had a walk-off single in the 11th inning. Solano hit a soft liner to Tejada to end the inning.
The Mets led 3-0 through five innings.
Torres gave the Mets a 1-0 lead with his third home run of the season in the third inning.
Davis doubled and scored on Hairston's 20th home run, a career high.
Bryan Petersen led off the first with a double for the Marlins, who did not get another hit until the sixth.
NOTES: The Marlins drew an attendance of 2,219,444 (27,400 average) in the first season at their new stadium. It's their highest figure since they attracted 2.3 million fans in 1997. ... New York won the season series 12-6, tying the mark for most wins for the Mets against the Marlins in a season. The Mets also won 12 in 2001. ... Both teams open the 2013 season on April 1.