Second baseman Jeff McNeil made a game-saving throw from right field to home plate for the final out, and the New York Mets held off the St. Louis Cardinals 8-7 on Saturday night after starter Noah Syndergaard exited with a strained right hamstring.

Pete Alonso smashed a mammoth three-run homer for the Mets off the facing of the third deck in a five-run first inning against Michael Wacha (4-3). J.D. Davis homered and had four hits, finishing a triple short of the cycle. And this time, New York's beleaguered bullpen finally held on — barely — after blowing late leads in the first two games of the series.

More Images
New York Mets first baseman Pete Alonso, left, and third baseman Todd Frazier celebrate after the Mets defeated the St. Louis Cardinals 8-7 during a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

Second baseman Jeff McNeil made a game-saving throw from right field to home plate for the final out, and the New York Mets held off the St. Louis Cardinals 8-7 on Saturday night after starter Noah Syndergaard exited with a strained right hamstring.

New York Mets starting pitcher Noah Syndergaard (34) touches his leg as he walks with a trainer while leaving the baseball game against the St. Louis Cardinals during the seventh inning Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

McNeil sprinted a long way in pursuit and converged with outfielder Michael Conforto, but neither was able to get there in time to make the catch. Conforto tumbled to the ground, but McNeil stayed on his feet and quickly grabbed the ball as it trickled away. He turned and made a perfect one-hop throw to the plate, easily nailing Jack Flaherty — the Cardinals pitcher who was pinch-running for the slow-footed Molina.

New York Mets' J.D. Davis (28) celebrates his solo home run off St. Louis Cardinals starting pitcher Michael Wacha with Michael Conforto (30) during the second inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

Syndergaard (5-4) reached for his right hamstring after throwing a pitch in the seventh. Mets manager Mickey Callaway and an athletic trainer came out to check on the right-hander, who quickly walked off the field with a bit of a limp.

New York Mets' Pete Alonso runs the bases after hitting a three-run home run off St. Louis Cardinals starting pitcher Michael Wacha during the first inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

Dexter Fowler homered early and had three RBIs for the Cardinals, who stole six bases — their most in 20 years. Mets nemesis Paul DeJong added three hits and a sacrifice fly.

New York Mets' Carlos Gomez scores on a single by Michael Conforto off St. Louis Cardinals relief pitcher Genesis Cabrera during the sixth inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

Mets: 2B Robinson Canó (left quadriceps) rejoined the team and is eligible to come off the injured list Sunday. He went 4 for 10 with three doubles in three rehab games at Triple-A Syracuse. ... LHP Justin Wilson was scheduled for a rehab appearance at Class A Brooklyn after making two with Syracuse. He has been sidelined since May 7 with a sore left elbow. ... OF Brandon Nimmo (neck) was returning to New York to be examined and treated after he was scratched from a scheduled rehab appearance with Syracuse with neck stiffness Friday night. Nimmo hasn't played in the majors since May 20. ... Gsellman returned to the mound after saying he had a stiff back following his scoreless inning Friday night.

St. Louis Cardinals catcher Yadier Molina, right, gives the ball to starting pitcher Michael Wacha after Wacha surrendered a three-run home run to New York Mets' Pete Alonso during the first inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

More AP MLB: https://apnews.com/MLB and https://twitter.com/AP_Sports

Seth Lugo struck out three in the eighth, fanning Matt Carpenter with the bases loaded to end the inning. Scuffling closer Edwin Díaz gave up a two-out RBI single to Yadier Molina in the ninth, and Kolten Wong lofted a blooper toward the right field line.

New York Mets first baseman Pete Alonso, left, and third baseman Todd Frazier celebrate after the Mets defeated the St. Louis Cardinals 8-7 during a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

New York Mets first baseman Pete Alonso, left, and third baseman Todd Frazier celebrate after the Mets defeated the St. Louis Cardinals 8-7 during a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

McNeil sprinted a long way in pursuit and converged with outfielder Michael Conforto, but neither was able to get there in time to make the catch. Conforto tumbled to the ground, but McNeil stayed on his feet and quickly grabbed the ball as it trickled away. He turned and made a perfect one-hop throw to the plate, easily nailing Jack Flaherty — the Cardinals pitcher who was pinch-running for the slow-footed Molina.

Flaherty looked back at the ball between second and third, then stumbled a bit coming around third, and it cost him.

A fired-up McNeil pumped his right arm and the Mets celebrated after a narrow escape.

New York Mets starting pitcher Noah Syndergaard (34) touches his leg as he walks with a trainer while leaving the baseball game against the St. Louis Cardinals during the seventh inning Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

New York Mets starting pitcher Noah Syndergaard (34) touches his leg as he walks with a trainer while leaving the baseball game against the St. Louis Cardinals during the seventh inning Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

Syndergaard (5-4) reached for his right hamstring after throwing a pitch in the seventh. Mets manager Mickey Callaway and an athletic trainer came out to check on the right-hander, who quickly walked off the field with a bit of a limp.

Robert Gsellman entered with New York leading 8-3. St. Louis scored three runs before the inning was over.

Syndergaard threw 102 pitches. He was charged with five runs, four earned, and six hits in six-plus innings.

New York Mets' J.D. Davis (28) celebrates his solo home run off St. Louis Cardinals starting pitcher Michael Wacha with Michael Conforto (30) during the second inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

New York Mets' J.D. Davis (28) celebrates his solo home run off St. Louis Cardinals starting pitcher Michael Wacha with Michael Conforto (30) during the second inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

Dexter Fowler homered early and had three RBIs for the Cardinals, who stole six bases — their most in 20 years. Mets nemesis Paul DeJong added three hits and a sacrifice fly.

TRAINER'S ROOM

Cardinals: Paul Goldschmidt was rested before drawing a pinch-hit walk in the eighth. He remained in the game at first base. ... Cardinals C Yadier Molina was shaken up after getting hit on his glove hand by a foul ball in the sixth. He was checked by an athletic trainer and manager Mike Shildt, but stayed in the game.

New York Mets' Pete Alonso runs the bases after hitting a three-run home run off St. Louis Cardinals starting pitcher Michael Wacha during the first inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

New York Mets' Pete Alonso runs the bases after hitting a three-run home run off St. Louis Cardinals starting pitcher Michael Wacha during the first inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

Mets: 2B Robinson Canó (left quadriceps) rejoined the team and is eligible to come off the injured list Sunday. He went 4 for 10 with three doubles in three rehab games at Triple-A Syracuse. ... LHP Justin Wilson was scheduled for a rehab appearance at Class A Brooklyn after making two with Syracuse. He has been sidelined since May 7 with a sore left elbow. ... OF Brandon Nimmo (neck) was returning to New York to be examined and treated after he was scratched from a scheduled rehab appearance with Syracuse with neck stiffness Friday night. Nimmo hasn't played in the majors since May 20. ... Gsellman returned to the mound after saying he had a stiff back following his scoreless inning Friday night.

UP NEXT

Cardinals RHP Dakota Hudson (5-3, 3.47 ERA) starts the series finale Sunday against LHP Jason Vargas (3-3, 3.68).

New York Mets' Carlos Gomez scores on a single by Michael Conforto off St. Louis Cardinals relief pitcher Genesis Cabrera during the sixth inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

New York Mets' Carlos Gomez scores on a single by Michael Conforto off St. Louis Cardinals relief pitcher Genesis Cabrera during the sixth inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

More AP MLB: https://apnews.com/MLB and https://twitter.com/AP_Sports

St. Louis Cardinals catcher Yadier Molina, right, gives the ball to starting pitcher Michael Wacha after Wacha surrendered a three-run home run to New York Mets' Pete Alonso during the first inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)

St. Louis Cardinals catcher Yadier Molina, right, gives the ball to starting pitcher Michael Wacha after Wacha surrendered a three-run home run to New York Mets' Pete Alonso during the first inning of a baseball game Saturday, June 15, 2019, in New York. (AP PhotoJulio Cortez)