NEW YORK — Matt Reynolds snapped a sixth-inning tie with his first major league home run, leading Noah Syndergaard and the New York Mets to a 4-3 win over the Kansas City Royals and a two-game sweep in their World Series rematch.

Asdrubal Cabrera homered for the second straight day and scored with an acrobatic slide to help Syndergaard (8-2) win his sixth consecutive decision.

New York’s Yoenis Cespedes had two hits and a walk, including a double off the center-field wall, but was removed in the sixth because of discomfort in his left wrist.

BLUE JAYS 5, DIAMONDBACKS 2: Russell Martin hit a three-run homer and Edwin Encarnacion and Troy Tulowitzki added solo shots as host Toronto snapped Arizona’s’ five-game winning streak.

J.A. Happ (9-3) won his third straight start.

YANKEES 9, ROCKIES 8: Starlin Castro hit a game-winning home run to lead off the bottom of the ninth.

New York trailed 8-4 going into the seventh, but Carlos Beltran’s three-run homer helped bail out CC Sabathia after his worst outing of the season.

BREWERS 4, ATHLETICS 2: Scooter Gennett and Kirk Nieuwenhuis homered to back Junior Guerra’s first victory in more than a month as visiting Milwaukee earned a split of a two-game interleague series.

ORIOLES 7, PADRES 2: Baltimore got homers from Mark Trumbo and Ryan Flaherty as the first-place Orioles recorded their 1,000th win at Camden Yards.

RANGERS 6, REDS 4: Cole Hamels struck out eight in six solid innings and Prince Fielder had a two-run single as Texas won at home.

AMERICAN LEAGUE

ASTROS 3, ANGELS 2: Jose Altuve homered and Marwin Gonzalez’s tie-breaking RBI triple in the eighth inning helped host Houston win its fifth straight.

TIGERS 5, MARINERS 1: Steven Moya homered twice and Detroit withstood a shaky fifth inning from right-hander Michael Fulmer to win at home.

INDIANS 6, RAYS 1: Trevor Bauer (5-2) tossed a complete game, allowing just three hits with 10 strikeouts as host Cleveland picked up its sixth straight victory.

NATIONAL LEAGUE

CARDINALS 7, CUBS 2: Michael Wacha pitched into the seventh inning for his first win in nearly two months and St. Louis waited out Jake Arrieta before roughing up Chicago’s bullpen in a victory at Wrigley Field.

MARLINS 3, BRAVES 0: Adam Conley pitched a career-high eight innings and Miami broke Atlanta’s six-game winning streak with a victory at home.

GIANTS 7, PIRATES 6: Buster Posey threw out John Jaso attempting to steal second base to end the game and San Francisco rallied from an early five-run deficit to win at Pittsburgh.

NOTES

ROYALS: All-Star left fielder Alex Gordon (broken right wrist) played his fourth rehab game at Double-A Northwest Arkansas. He was 4 for 11 with a home run and a double in his first three games and could rejoin the Royals this weekend.

CARDINALS: Catcher Yadier Molina could be starting with an all-Cubs infield at the All-Star Game. The latest NL voting released Wednesday had Molina with a slight lead over San Francisco’s Buster Posey while the Cubs’ Anthony Rizzo, Ben Zobrist, Kris Bryant and Addison Russell continued to lead at their infield positions.