As bad as this season has been for the Miami Marlins, R.A. Dickey and the New York Mets have added as much misery as anyone to the NL East's cellar dwellers.
Dickey stifled the Marlins again for eight innings on Saturday, and escaped with his fifth victory of the season over Miami when a ninth-inning rally fell short.
The Mets held on to win 4-3, the sixth straight time they have beaten the Marlins.
Dickey has been the biggest foil for the Marlins, who are 0-5 this season against the knuckleballer and have gotten only six runs off him in 39 innings (1.38 ERA).
The five wins — of his 19 — are the most for one pitcher against Miami in any season in franchise history.
He will get a shot at a sixth win in the final series of the year.
"It goes left, it goes right, it goes up, it goes down," outfielder Bryan Petersen said in describing Dickey's knuckleball. "Sometimes it stays straight, and that's probably the one you should hit, but you're not expecting it to do that.
"If he's meaning to do that stuff, then more power to him because it's working."
Just hours after the Mets snapped a nine-game losing streak at Citi Field on Friday and scored more than three runs in their home ballpark for the first time since Aug. 12, New York broke out the bats again in front of a crowd of 30,332.
John Buck got the Marlins within a run with a three-run homer off Jon Rauch after Dickey (19-6) left. The home run was confirmed after the second video replay of the game when umpires ruled the shot struck the left-field foul pole.
The Mets have won consecutive games at home for the first time since topping Houston on Aug. 25-26 — the last two games before the start of their most recent home skid.
Dickey got to 19 wins on his third try after two consecutive losses — the only time this season he has been beaten in back-to-back starts.
Washington's Gio Gonzalez, who also pitched on Saturday, and Dickey are the only major leaguers with at least 19 wins this season.
The knuckleballer batted for himself in the eighth, despite already throwing 104 pitches, and heard cheers and chants of his name when he returned to the mound in the ninth.
He tried to finish his fourth shutout of the season but was pulled after Greg Dobbs led off with a walk and Donovan Solano followed with a double.
"Nobody wants this guy to win more than me," Mets manager Terry Collins said. "I could not let him get into a situation where he might lose that game."
Rauch then allowed Buck's 12th homer before getting three outs for his fourth save. Gorkys Hernandez struck out with a runner on second to end it.
Dickey yielded two runs, six hits — including three by Solano and two by Gil Velazquez — and two walks.
"He obviously is good. It's not like he's just had our number," Buck said. "We didn't single-handedly hand him the Cy Young. He did have to face some other teams. We're obviously a big part of the reason."
Dickey nearly provided another thrill with his bat when he sent a long drive to left field with the bases loaded in the sixth, but was robbed of an extra-base hit when Petersen jumped into the fence to make a highlight-reel catch.
"The wind was crazy," Petersen said. "We were playing in with Dickey up, so you just kind of put your head down and you run. I got good footing on the wall."
After a wild pitch on a knuckler, Dickey worked out of a jam in the second inning by striking out Hernandez and Jose Reyes with runners on second and third.
"He struck out the guy when he needed to strike out the guy," Marlins manager Ozzie Guillen said. "That was a huge, huge inning for him."
Dickey struck out four to retake the league lead from Los Angeles' Clayton Kershaw and will be in position to reach 20 wins for the first time when he faces Pittsburgh on Thursday in his final home start of the season.
Bay provided the punch against Mark Buehrle (13-13) in the second by launching a two-run homer to straightaway center for his eighth of the season. It was Bay's second consecutive shot against Buehrle, having hit a grand slam against the left-hander in Miami on Sept. 2 to pace the Mets to a 5-1 win.
Hairston pushed New York's lead to 3-0 in the fourth when he led off with his 19th homer of the season and second in two days. Hairston had to wait through a video review before he finished his trot in from second base, as the ball was originally ruled in play off the center field fence. Replays showed the ball struck the batter's eye above the blue wall 408 feet from home plate.
Buehrle allowed four runs and five hits with three walks and three strikeouts in six innings of his 30th start of the season. He is six innings shy of reaching 200, which would give him 12 straight seasons of 10 wins, 30 starts and 200 innings — the longest current streak in the majors.
NOTES: Mets closer Frank Francisco was again unavailable after feeling soreness in his elbow. ... Dickey is the first Mets pitcher with 19 wins since Frank Viola (20) and Dwight Gooden (19) did it in 1990. ... Lucas Duda returned to the Mets lineup one day after being pulled from the game by Collins for not running out a pop fly that dropped. ... Marlins OF Giancarlo Stanton sat out a fourth consecutive game because of a strained muscle in his side. ... Buehrle is 0-3 against the Mets in his career, all this season.