Pete Alonso homered twice and drove in five runs, Brandon Nimmo hit his second grand slam in four days and the host New York Mets battered the New York Yankees 12-6 on Saturday.

Carlos Rodón (9-6) was roughed up as the Yankees equaled a season high with their sixth consecutive defeat.

The Mets have won four in a row following a 3-14 slide, improving the best home record in the majors to 33-13.

Francisco Lindor scored four times and Frankie Montas (1-1) allowed four runs in 5 2/3 innings to beat his former team. It was his first win in three starts with the Mets after coming back from a right lat strain.

Jazz Chisholm Jr., Austin Wells and Anthony Volpe each launched a solo homer for the Yankees.

Red Sox 10, Nationals 3: Ceddanne Rafaela homered, Walker Buehler earned his first road victory since April 26, and the visiting Boston Red Sox routed the Washington Nationals 10-3 to earn the 10,000th victory in franchise history Saturday.

Romy Gonzalez had three hits for Boston (45-45), which has won five of seven. The Red Sox are the second American League franchise to reach 10,000 wins, joining the New York Yankees.

The Nationals fell to 18-27 at home, the third-worst record in the majors behind Colorado and the Athletics.

Just as they did in Friday’s 11-2 victory over Washington, the Red Sox broke it open with a seven-run inning. Roman Anthony made it 3-0 in the third with an RBI single, and four batters later Jarren Duran hit a two-run triple to right-center.

Nationals starter Mitchell Parker (5-9) misplayed Abraham Toro’s grounder to allow Duran to score, and Rafaela hit the next pitch into the seats in left field to make it 8-0.

Buehler (6-6) allowed three runs — two earned — in five-plus innings.

Cardinals 8, Cubs 6: Yohel Pozo slugged a pinch-hit three-run homer to cap St. Louis’ five-run eighth-inning rally in a win over Chicago at Wrigley Field that ended a four-game slide.

Pozo’s drive off Brad Keller reached Waveland Avenue to put St. Louis ahead 8-5. Alec Burleson, who finished with three hits, cracked a solo shot to start the rally.

Nolan Gorman also went deep for the Cardinals, who rebounded after Michael Busch and Carson Kelly homered for the second straight day to help Chicago build a two-run lead after seven.

Busch lined his 18th home run in his first at-bat, then doubled and singled. He smacked three of Chicago’s franchise-record eight home runs an 11-3 rout of the Cardinals on Friday.

Diamondbacks 7, Royals 1: Ryne Nelson retired the first 16 Kansas City batters and Arizona won at home to snap a three-game losing streak.

Nelson (5-2) gave up four hits and one run over seven innings. The right-hander threw 86 pitches, walked none and struck out five.

Freddy Fermin’s sharp single to center with one out in the sixth ended Nelson’s perfect-game bid. Fermin scored on Bobby Witt Jr.’s two-out single.

Josh Naylor and Eugenio Suárez had RBI singles in the third off Michael Wacha (4-9), and Lourdes Gurriel Jr. doubled in two runs in the fifth for Arizona.

Randal Grichuk hit an inside-the-park homer in the eighth.

Tigers 1, Guardians 0: Casey Mize threw seven innings of four-hit ball, Spencer Torkelson homered and visiting Detroit dealt Cleveland its ninth straight loss.

It is the fifth time during the Guardians’ skid they have not scored a run. It was the 11th time this season they have been shut out, tied with Pittsburgh for most in the majors.

Mize (9-2) walked two and struck out four as he won for the third time in his last four starts.

Torkelson drove a fastball from Logan Allen (5-7) just over the wall in right-center in the second inning.

Allen allowed one run on two hits in six innings.

Phillies 5, Reds 1: Alec Bohm and Kyle Schwarber each hit two-run homers and Edmundo Sosa added a solo shot to lift Philadelphia at home over Cincinnati.

Phillies starter Ranger Suárez was pulled by manager Rob Thomson after throwing just 80 pitches in five innings. He struck out six and lowered his ERA to 1.99.

Suárez allowed seven earned runs in his first start of the season, and has now allowed only 11 over his last 11 starts. The circumstances of his early exit were not immediately known,

Bohm hit a two-run homer in the sixth inning off Reds starter Nick Lodolo (5-6) for a 3-1 lead and Schwarber connected on his 27th homer of the year in the eighth to make it 5-1.

Lodolo struck out eight and allowed three runs over six innings.

Marlins 4, Brewers 2: Rookie Agustín Ramírez hit a tiebreaking, two-run single in the eighth and Miami beat visiting Milwaukee.

Kyle Stowers homered and Ronny Henríquez (5-1) pitched two perfect innings of relief for the Marlins.

Ramírez has 37 RBIs, which leads NL rookies.

Orioles 9, Braves 6 (10): Ramón Laureano’s double in the 10th gave Baltimore the lead and the Orioles hit three homers in a win at Atlanta.

Laureano’s double down the third-base line off Rafael Montero (0-1) drove in Jordan Westburg from third base. Jacob Stallings added a two-run double in the inning.

Colton Cowser had a two-run homer for Baltimore in the fourth.

Matt Olson drove in two runs with three hits, including a homer, for Atlanta. Austin Riley drove in three runs with two hits, including a two-run homer in the first off Dean Kremer.

Twins 6, Rays 5:Brooks Lee drove in the game-ending run with a bunt single in the ninth inning as Minnesota edged Tampa Bay.

Garrett Clevenger (0-4) walked Byron Buxton to start the ninth. Willi Castro followed with a single that moved Buxton to third.

Lee then bunted the first pitch up the first-base line. First baseman Yandy Díaz didn’t have a play on Buxton, so he let the ball go, and it rolled over the bag for a hit.

Danny Jansen singled, doubled and tripled for Tampa Bay.