NEW YORK -- Miguel Batista stood in front of his locker a couple of hours after he was done pitching, still wearing his game pants and in no hurry to let go of this moment.
Batista pitched six serviceable innings to earn his 100th win, David Wright hit a two-run single in a four-run third against the bumbling Marlins and the New York Mets hung on to beat Florida 7-5 Thursday night.
"I'm very proud of my career," the 40-year-old Batista said.
Making his first start since April 22 for St. Louis, Batista scattered six hits while becoming the third active pitcher to play for at least 10 teams. Filling in for injured Jonathon Niese, Batista induced two double-play grounders and helped New York take four of five in a series against its NL East rival.
He got off to a shaky start, giving up a leadoff single and two walks and a run in the first.
"I think I was a little too eager to get this game out of the way," he said. "Don't believe it was nervousness -- too old for that."
Manager Terry Collins was impressed with his composure and pitches, but it's probably not enough to earn Batista another start.
"I don't know if he's going to go in five days," Collins said.
With rosters expanding Sept. 1, Collins might have to find a start for a youngster.
Emilio Bonifacio had three hits and three RBIs for Florida, including a two-run single during a three-run ninth. But the Marlins committed three errors and lost for the 20th time in 25 games.
"It was sloppy tonight, no question," Marlins manager Jack McKeon said.
Lucas Duda drove in two runs and Ruben Tejada was hit twice by pitches and scored both times for New York, which was outhit 10-6. The Mets added what became three important runs in the eighth, helped in part by a throwing error.
D.J. Carrasco gave up a two-out, two-run single to Bonifacio in the ninth and left with a runner on first. Bobby Parnell relieved and pinch-hitter John Buck hit an RBI double before Parnell got Greg Dobbs to pop out to second base for his fourth save.
Batista (4-2) improved his career record to 100-112.
In his 17th season, Batista did something the Mets have rarely been able to do this season: shut down Gaby Sanchez. The Marlins first baseman came in hitting .353 with four homers and 11 RBIs in 51 at-bats against New York, but he grounded out in each of his first three at-bats, leaving five runners on base.
Batista and catcher Josh Thole got crossed up on a pitch in the second inning. Thole thought a slider was coming and Batista threw a fastball that hit Thole in the wrist.
Thole left the game and was wearing a brace on his hand afterward. The Mets said he had a bruise and Thole said X-rays didn't show a break and that he will be examined Friday.
The Mets took advantage of some poor play by the Marlins in the four-run fourth inning to overcome a 2-0 deficit.
Batista reached leading off when Bonifacio, playing shortstop for injured Hanley Ramirez, botched his grounder for an error. Tejada was hit by a pitch. Jose Reyes then hit a sharp grounder that Bonifacio knocked down while sliding on his knee to his left but couldn't make a play, loading the bases. Reyes was given a single.
Duda walked to score a run. Clay Hensley (2-6) then went to a 2-1 count to Wright before he was pulled for a reliever.
"I don't really know what to say about it," Hensley said. "I'd better keep it to a minimum tonight so I don't get myself in trouble."
Said McKeon: "I just couldn't afford to have a walk, and I knew he was going to pitch very carefully to Wright. He got 2-1 and looked like he didn't have the strike zone, so I made the move."
Hensley gave up four runs -- two earned -- in two-plus innings.
Facing Burke Badenhop, Wright lined a single up the middle to score two runs. Center fielder Bryan Petersen made an offline throw that missed the cutoff man and went past the catcher, allowing Duda to move up to third and Wright to second.
After an out, Badenhop threw a pitch that bounced in the dirt and went through catcher Brett Hayes' legs for a passed ball. Duda raced home for a 4-2 lead.
Batista began the season with St. Louis and was 3-2 with a 4.60 ERA in 26 games, including one start, but was released in June. He joined the Mets in July and went 3-0 with a 4.24 ERA at Triple-A Buffalo.
He gave up a single to Bonifacio, a hard shot that went through second baseman Tejada's legs, to start the game and walked two in the first. Mike Stanton hit a sacrifice fly for the early lead.
Bonifacio hit an RBI double in the second, but Batista got double plays in the third and sixth with runners on first and second to shut down the Marlins.
Tejada had a bruise on his left hand. ... The Marlins recalled RHP Sandy Rosario from Triple-A New Orleans. ... The Mets recalled RHP Josh Stinson from Double-A Binghamton and purchased the contract of infielder Josh Satin from Triple-A Buffalo. ... Octavio Dotel has been with 12 major league teams and Bruce Chen with 10.