Pérez (1-1) overcame four walks and some shaky defense behind him, allowing only two hits while striking out five in 5 2/3 innings for his first win with the Red Sox. The left-hander signed a $6.5 million, one-year contract as a free agent in December.
Vázquez connected twice off Steven Matz (0-1), including a two-run shot on an 0-2 pitch in the fourth that put Boston ahead 3-2 and left a frustrated Matz shaking his head.
Boston loaded the bases with nobody out in the ninth and added an insurance run when Edwin Díaz hit José Peraza with a pitch.
Heath Hembree worked out of trouble in the seventh, and Matt Barnes did the same in the eighth. Brandon Workman, on the mound for the third straight day after throwing 30 pitches Wednesday, got three outs for his second save — both in the last two nights.
Workman whiffed slugger Pete Alonso with a runner on second to end a game that took 3 hours, 49 minutes.
The Mets, who went 3 for 14 with runners in scoring position Wednesday, stranded nine overall this time.
The Red Sox have won two in a row following a four-game skid. They split four consecutive games against the Mets, with the road team winning each one.
Vázquez hit a leadoff shot to left field in the second. His only other multi-homer game in the majors came last September at Philadelphia. He joined Hall of Famer Carlton Fisk (1973) as the only Red Sox catchers to hit four home runs in the first seven games of a season.
Vázquez also launched a tying home run in the seventh inning Wednesday night and a two-run single in the eighth that helped Boston rally for a 6-5 victory.
Jeff McNeil laced a two-run single off Pérez in the third to give the Mets a 2-1 lead.
Red Sox: LHP Eduardo Rodríguez still isn’t close to being able to return from a heart condition he developed as a symptom of COVID-19. Boston manager Ron Roenicke said Rodriguez hasn’t been cleared to start pitching again, and when he does it will take him time to get back into game shape. … 3B Rafael Devers and 1B Mitch Moreland were rested against the left-hander. Devers pinch-hit in the ninth and struck out with the bases loaded against Díaz before remaining in the game and making a tough play at third for the first out of the bottom half.
Mets: RHP Marcus Stroman (torn calf muscle) is scheduled to face hitters Friday. … INF Jed Lowrie got a second opinion on his troublesome left knee. He has looseness in a ligament, general manager Brodie Van Wagenen said. Lowrie has hardly been able to play for New York since signing a $20 million, two-year contract before last season.
Red Sox: After winning two games at Citi Field in Queens, the Red Sox remain in New York City but head up to the Bronx for the opener of a three-game series Friday night at Yankee Stadium. It will be the first meeting between the longtime rivals during this tenuous season shortened by the coronavirus. Ryan Weber (0-1) pitches for Boston against left-hander Jordan Montgomery.
Mets: RHP Rick Porcello seeks his 150th career win and tries to rebound from an ugly Mets debut when New York begins a four-game series in Atlanta. Porcello was tagged for seven runs, six earned, and seven hits with three walks in two-plus innings Sunday during a 14-1 loss to the Braves. He is 2-0 with a 0.79 ERA in two career starts at Atlanta. LHP Sean Newcomb goes for the Braves.
(© Copyright 2020 CBS Broadcasting Inc. All Rights Reserved. The Associated Press contributed to this report.)