HOUSTON — Gerrit Cole celebrated his 29th birthday by allowing one hit with 15 strikeouts in a season-high eight innings, and the Houston Astros routed Félix Hernández and the Seattle Mariners 21-1 Sunday to complete a four-game sweep.

Cole (16-5) won his 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 in second in the AL behind the 2.52 for teammate Justin Verlander.

Chris Devenski struck out two in a perfect ninth, finishing a series in which Houston outscored the Mariners 41-15.

Jake Marisnick and George Springer homered, and rookie Yordan Álvarez had six RBIs and hit three of Houston's team-record 11 doubles. The Astros are 16-1 against Seattle this year, winning 11 in a row.

RELATED: The Astros are removing old seats inside Minute Maid Park and they want to sell them to you!

Hernández (1-6) tied his career high, allowing 11 runs. He lasted just two-plus innings and gave up seven hits.,

With runners at second and third and two outs in the second, shortstop Dee Gordon couldn't handle Martin Maldonado's grounder, allowing two runs to score on the error.  Marisnick sent Hernandez's next pitch into the left-field seats for his 10th homer and a 4-0 lead.

Seattle's day got even worse during a nine-run third that included six doubles, including a pair by Álvarez that drove in three runs. Aledmys Díaz, Kyle Tucker and Maldanado also doubled in runs off Hernández, who slumped his shoulders and shook his head as he watched Maldonado's ball skip into the outfield on his final pitch. Hernandez's face was expressionless as he slowly walked off the field.

RELATED: Verlander gets MLB-best 18th win as Astros down Seattle 2-1

All nine Astros starters scored a run in the first three innings for the first time since June 12, 2015 - also a game Hernández started.

Erik Swanson allowed a two-run homer to Springer, who returned following a concussion that caused him to miss three games.

RHP Zack Greinke (14-5, 3.09) will start for Houston on Monday in the opener of a four-game series against Oakland. Greinke lost his first decision since being traded from the Diamondbacks in his last start after yielding four runs and eight hits over six innings of a 4-2 loss to Milwaukee.