Syndergaard (8-7) got off to a rough start, allowing back-to-back singles and a three-run home run to Beltran to start the game.
He settled down afterward, retiring 16 of the next 17 hitters before Beltran singled and McCann hit a two-run home run to right field that put the Mets in a 5-0 hole.
Syndergaard struck out eight batters and allowed seven hits and five runs in six innings, while the Mets' hitters were unable to generate much offense against Michael Pineda or the Yankees' bullpen.
Kelly Johnson and Curtis Granderson hit back-to-back singles to lead off the sixth inning, but Yoenis Cespedes struck out against Pineda (11-8) to continue an 0-for-17 slump.
The Yankees (81-66) brought in Justin Wilson, who walked Daniel Murphy to load the bases with one out. David Wright and Juan Uribe both struck out to end the inning.
The Mets (84-64) recorded just two infield singles - both with two outs in the ninth inning - off the Yankees' bullpen, which struck out seven consecutive Mets at one point.
Pineda pitched 5 1/3 scoreless innings, allowing four hits and one walk.
The Mets and Yankees play the final game of their three-game Subway Series on Sunday at 8 p.m.
Matt Harvey (12-7, 2.88 ERA) will face CC Sabathia (4-9, 4.93 ERA).