Thomas Shea-USA TODAY Sports

Jeremy Pena and Alex Bregman homered in the fifth inning and Aledmys Diaz and Yordan Alvarez added insurance blasts as the Houston Astros slugged their way to their eighth consecutive victory, a 9-7 triumph over the visiting Kansas City Royals on Tuesday.

The Astros have won 13 of 15 and continue to thrive in myriad ways. After their pitching carried the load for most of this stretch of success, the offense has kicked into high gear on the current eight-game homestand, in which Houston is off to a 6-0 start.

The Royals lost for the third time in four games.

With Houston leading 6-5 in the seventh inning, Diaz followed a 13-pitch walk by Yuli Gurriel with a first-pitch home run to left field off Royals right-hander Jackson Kowar.

The Royals mounted a threat in the top of the eighth off Astros reliever Bryan Abreu, scoring on a bases-loaded walk from Michael A. Taylor. Alvarez cut the rally short when he caught Nicky Lopez's fly ball to left and threw out Hunter Dozier at the plate for an inning-ending double play.

Alvarez then clubbed his 25th home run in the bottom of the frame for a 9-6 lead.

Houston erased two early two-run deficits by pummeling Royals right-hander Zack Greinke (2-5), who spent the previous two-plus seasons with the Astros after arriving at the 2019 trade deadline. Greinke allowed six runs on 10 hits and two walks in five innings. He struck out two.

Bregman, who went 3-for-3 against Greinke, doubled leading off the second and scored on a Gurriel groundout as part of a two-run frame that pulled the Astros even. Two innings later, Gurriel singled and scored on a Jake Meyers single that sliced the Astros' deficit to 4-3.

When Pena drilled the first pitch of the fifth inning over the wall in center for his 12th home run, the Astros knotted the game at 4-4. Alvarez singled, and Bregman followed with his 10th home run, a two-run shot to left for a 6-4 lead.

Astros right-hander Luis Garcia (7-5) surrendered a home run to MJ Melendez, his third in two games and ninth of the year, leading off the second plus a two-run shot to Bobby Witt Jr., his 12th, with one out in the third inning.

Garcia recovered and retired 11 of the ensuring 12 batters before departing after 6 1/3 innings. He allowed five runs on seven hits and one walk with seven strikeouts.

Houston's Rafael Montero allowed a run in the ninth on a Whit Merrifield triple and an Andrew Benintendi groundout, but he recovered to post his sixth save.

More must-reads:

TODAY'S BEST
Blue Jays manager John Schneider blasts team after latest loss
Lakers make another big change after firing Darvin Ham
Draymond Green doubles down on Knicks' inability to win a championship
Phillies lose two-time All-Star to injured list
Mavs big man to undergo MRI on injured shoulder
NBA announces punishment for Lakers star over actions in elimination game
Heat may be cooling on Jimmy Butler's long-term future
NFL insider defends former Steelers QB Kenny Pickett from 'bust' label
Nuggets may miss this player as postseason run continues
Report: Russell Westbrook situation 'far more challenging' than previously thought
Kansas City Chiefs release former second-round pick at WR
NHL announces finalists for 2024 Lady Byng Trophy
Giannis Antetokounmpo refutes claim by HC Doc Rivers
Former Pro Bowler attempting comeback with NFC East team after two seasons out of action
Vikings' J.J. McCarthy wanted one team to draft him
Watch: Prospect stunned, confused after being removed mid-game due to trade
Rangers lose two-time All-Star starting pitcher to injury
Three offseason moves the Giants must make
Mavericks' Luka Doncic gets payback, knocks out Clippers
Lakers fire HC Darvin Ham after disappointing season