HOUSTON — Gerrit Cole had a special game on his 29th birthday Sunday.

If not for Shed Long’s homer into the short porch in left field, the day would have been perfect.

Cole allowed one hit with 15 strikeouts in a season-high eight innings, and the Houston Astros routed Felix Hernández and the Seattle Mariners 21-1 to complete a four-game sweep.

“He makes it look pretty easy,” Astros Manager AJ Hinch said. “He was locked in command-wise, stuff-wise, intensity-wise.”

Cole (16-5) walked none in winning a 12th straight decision and joined Pedro Martinez as the only pitchers in major league history with 14 or more strikeouts in three straight games. Cole leads the major league with a career-high 281 strikeouts, and his 2.73 ERA is second in the AL behind the 2.52 for teammate Justin Verlander.

RAYS 8, BLUE JAYS 3:  Tyler Glasnow struck out five over two innings in his return from a four-month layoff, and Tampa Bay won at home to complete a four-game sweep

RANGERS 10, ORIOLES 4: Rookie Nick Solak had three hits and four RBI, Ronald Guzman and Rougned Odor homered, and Texas won in Baltimore.

WHITE SOX 5, ANGELS 1: Danny Mendick hit his first career home run, Jose Abreu got his 31st of the season, and Chicago won at home.

INDIANS 5, TWINS 2:  Mike Clevenger won his 10th straight decision, and Carlos Santana and Francisco Lindor homered as Cleveland beat host Minnesota.

ATHLETICS 3, TIGERS 1: Sean Manaea matched his career high by striking out 10 in his second start following shoulder surgery, and host Oakland beat Detroit to give the Tigers their first 100-loss season since 2003.

NATIONAL LEAGUE

DODGERS 5, GIANTS 0: Corey Seager and Matt Beaty homered, Kenta Maeda threw four dominant innings in relief, and Los Angeles beat San Francisco at Dodger Stadium to reduce its magic number to clinch the NL West to two.

The Dodgers (93-52) can lock up their seventh consecutive division title Tuesday at Baltimore when they open a three-game series.

Beaty delivered a two-run home run in the fourth inning and Seager added a three-run shot in the fifth as the Dodgers increased their NL-record homer total to 255. They are 79-33 in games when they hit a home run. This year’s Twins hold the major league record with 274 homers.

PHILLIES 10, METS 7:  Maikel Franco, Scott Kingery and Adam Haseley homered as Philadelphia overcame an early deficit and outlasted New York at Citi Field to further tighten the NL wild-card race.

NATIONALS 9, BRAVES 4: Max Scherzer won for the first time in two months, Juan Soto homered and Washington won in Atlanta to stop the NL East leaders’ nine-game winning streak, their longest in five years.

CARDINALS 2, PIRATES 0: Jack Flaherty had another strong start in his scintillating second half, scattering five hits over eight electric innings to lead visiting St. Louis to a  win over Pittsburgh.

REDS 4, DIAMONDBACKS 3: Relief pitcher Michael Lorenzen lined a game-ending, pinch-hit double in the ninth inning to help host Cincinnati snap Arizona’s five-game winning streak.

BREWERS 8, CUBS 5: Tyler Austin drove a pinch-hit, three-run homer against Jon Lester, and Milwaukee won at home to tighten the NL wild-card race.

PADRES 2, ROCKIES 1: Wil Myers singled in Manny Machado with one out in the 10th inning to give San Diego a win against Colorado and a series victory in a matchup between the worst teams in the NL West, in San Diego.

INTERLEAGUE

MARLINS 9, ROYALS 0: Sandy Alcantara became the first Marlins pitcher with two shutouts in his rookie season since Dontrelle Willis, and Miami won at home.

NOTES

PHILLIES: Bryce Harper was out of the starting lineup again because of an injured right hand.

Harper hasn’t played since being hit by a fastball from Mets lefty Steven Matz on Friday night. X-rays were negative.

NATIONALS: Washington catcher Kurt Suzuki might not miss extended time after an MRI on his right elbow revealed no serious injury.

Suzuki has inflammation and still feels tingling in his arm after an awkward throw to second base. He was a seventh-inning defensive replacement Saturday and got injured in an unsuccessful attempt to catch Atlanta’s Rafael Ortega stealing. He left before the top of the eighth.

Comments are not available on this story.