NEW YORK — Defensive replacement Jake Marisnick made a perfect throw from left field to nail Jacoby Ellsbury at the plate for the final out Thursday night and the Houston Astros held off the New York Yankees 3-2 in a matchup between teams with the best records in baseball.

Dallas Keuchel (6-0) became the first six-game winner in the majors, helped by a home run from Carlos Correa. The Astros won their fourth straight and improved to 24-11 – their top mark after 35 games since the franchise began playing in 1962.

Ken Giles wound up with his 10th save in 11 tries, saved by Marisnick.

Ellsbury’s single with two outs in the ninth inning put runners at the corners, and then he stole second. Gary Sanchez followed with a sharp RBI single to left and Marisnick, who came into the game in the seventh, fired a strike to catcher Brian McCann to get the sliding Ellsbury.

Carlos Beltran and McCann were quiet in their return to Yankee Stadium, the former New York power hitters going hitless in seven at-bats for Houston. The Astros didn’t need much hitting behind Keuchel.

Keuchel kept up his resurgence, striking out nine in six innings. He earned the AL Cy Young Award in 2015 but dipped to 9-12 last season. He’s won eight straight dating to last August, matching a career high.

ROYALS 6, RAYS 0: Major league ERA leader Jason Vargas went seven more scoreless innings, Salvador Perez had a two-run double during a five-run eighth inning and Kansas City won at St. Petersburg, Florida.

Vargas (5-1) scattered three hits and dropped his ERA from 1.19 to 1.01.

Jorge Bonifacio hit an RBI single off Diego Moreno in the decisive eighth before Whit Merrifield had a run-scoring single and then circled the bases when center fielder Kevin Kiermaier misplayed the hit for a three-base error.

Merrifield also homered for the Royals, who won 3 of 4 against the Rays. Kansas City had lost 13 of 16 entering the series.

Jake Odorizzi (2-2) gave up one run and four hits in six innings for the Rays. He had allowed three hits or fewer in each of his previous four starts.

BLUE JAYS 7, MARINERS 2: Steve Pearce hit a three-run homer, Justin Smoak had a solo homer and finished with four RBI, and Toronto won at home, snapping Seattle’s winning streak at four.

Marco Estrada (2-2) allowed two runs over six innings for the Blue Jays, who have won 4 of 5.

Smoak went 3 for 3 with a walk against his former team. He had an RBI single in the first, walked in the fourth, singled home two runs in the fifth and connected off rookie Sam Gaviglio in the seventh.

Nelson Cruz hit a two-run homer, but Seattle’s offense came up empty after the first inning.

INTERLEAGUE

RANGERS 5, PADRES 2: Mike Napoli’s second homer was a game-ending three-run shot and Texas won at Arlington, Texas.

The Rangers had been held scoreless by San Diego starter Clayton Richard until Napoli hit a 433-foot homer to left on the first pitch of the eighth inning.

Napoli topped that with a 448-foot shot into the club-level seats higher in left field to end a four-run ninth off Padres closer Brandon Maurer (0-2).

Elvis Andrus started the ninth-inning rally with a one-out single before Jonathan Lucroy followed with his third hit, looping a single that dropped just in front of diving center fielder Manual Margot. Rougned Odor then singled through the left side of the infield to drive home Andrus with the tying run and bring Napoli to the plate.

NOTES

BLUE JAYS: Toronto placed left-hander Francisco Liriano on the 10-day disabled list because of a sore shoulder and recalled right-hander Leonel Campos from Triple-A Buffalo.

Liriano allowed a season-worst seven runs in two-plus innings Wednesday against Cleveland, failing to finish four innings for the second straight start. He’s 2-2 with a 6.35 ERA in seven starts.

DODGERS: Los Angeles placed right-hander Kenta Maeda on the 10-day disabled list because of tightness in his left hamstring.

Maeda threw 8 1/3 innings and allowed two runs Wednesday in a victory against Pittsburgh.

ROCKIES: Colorado placed shortstop Trevor Story on the 10-day disabled list because of a strained left shoulder.

Story aggravated his shoulder on a swing in the second game of Tuesday’s doubleheader.

METS: Closer Jeurys Familia may need surgery after being diagnosed with an arterial clot in his right shoulder.

Familia blew his first save of the season in Wednesday’s 6-5 loss to San Francisco. It marked his third straight day of work, the second time this season he had done that.