Jhonny Peralta hit a tiebreaking home run in the sixth inning, Lance Lynn outdueled Noah Syndergaard and the St. Louis Cardinals held on for a 3-2 victory over the New York Mets on Friday night.
Peralta, one of six St. Louis All-Stars, barely cleared the left-field fence on a two-out drive for his 14th homer. Kirk Nieuwenhuis made a leaping effort and his glove ticked the ball that landed in the Mets' bullpen.
Curtis Granderson hit his fifth leadoff homer of the season for the Mets, who won four in a row before the All-Star break.
Trevor Rosenthal gave up Ruben Tejada's RBI infield hit in the ninth, and the Mets had two on before he struck out pinch hitter John Mayberry Jr. for his 27th save in 29 chances.
Lynn (7-5) allowed a run and three hits in seven innings in a game that began in 92-degree heat, retiring 16 of his final 18 batters. He had nine strikeouts with one walk for St. Louis, which leads the majors with a 57-33 record but had lost three straight before the break.
Syndergaard (4-5) also worked seven innings, allowing two runs and five hits. The rookie limited the Cardinals to two hits the first five innings, but gave up both runs on three hits in the sixth.
Kolten Wong singled, stole second and advanced to third on a wild throw before scoring on Matt Carpenter's groundout to tie it. Peralta homered one out later. Peter Bourjos added an RBI double in the eighth off Hansel Robles.
It was enough for Lynn. The Cardinals have totaled just 39 runs in 16 of Lynn's 17 starts, with an eight-run outburst at Cleveland on May 12 the exception.
Syndergaard had been 2-0 with a 1.22 ERA in his previous three starts, allowing one run each start, but fell to 0-4 on the road.
The Cardinals are a major league-best 32-11 at home and attendance of 44,540 was the 22nd sellout.