KANSAS CITY, Mo. -- Yordan Alvarez and Jake Meyers homered and Framber Valdez pitched seven strong innings as the Houston Astros beat the Kansas City Royals 7-1 on Sunday.
The Astros salvaged the final game of the series, expanding their American League West lead to 1 1/2 games as Texas lost to Cleveland 9-2.
Valdez pitched around three Astros errors for his fifth consecutive quality start, allowing one unearned run on five hits and a walk, striking out five.
"You go through streaks where you're not yourself," Astros manager Dusty Baker said. "Then you go through streaks where you're adding on and adding on and getting consecutive games, and you confidence grows. We need Framber, and it was big for him."
"He located his fastball really well," said Royals second baseman Nick Loftin. "We weren't able to string together hits consecutively when we needed to. He did really well commanding the zone."
Falling behind early, Valdez (12-10) had trouble locating his changeup. He threw first-pitch strikes to 11 of 26 batters while missing the strike zone with 16 of 39 changeups, but induced a pair of double plays to escape late-inning jams.
"The movement was inconsistent," Royals manager Matt Quatraro said. "Some of them ran more, some of them didn't much at all. Some of them cut. He kept the ball down, certainly. The double plays were huge."
Meyers led off the fourth with his 10th homer and Alvarez hit his 28th leading off the fifth, the 38th allowed by Jordan Lyles (4-17), tying a Royals record. Kansas City is 48-102.
"Missed locations," Lyles said. "I got a swing-and-miss (by Alvarez) with a cutter up and in, and tried to go back to that spot, a little bit farther in, and it went the opposite way, went middle-middle. Good hitters make you pay on those mistakes and he's a really good hitter."
Houston collected leadoff hits in all but one inning against Lyles, who limited the damage as the Astros were 2-for-13 with runners in scoring position. He completed six innings, allowing four runs on six hits and a walk with six strikeouts.
"Gave up a two spot, then (homers) back to back innings after that," Lyles said. "Good offenses make you work. They made me work in the first, in the third, the fourth, fifth. Hats off to them."
Drew Waters' sacrifice fly opened the scoring. After Logan Porter reached on Valdez's throwing error and threw wildly to first, Loftin advanced to third. Porter was later awarded second as first baseman José Abreu threw his glove at Valdez's wild throw for a second error on the same play.
Houston tied the game on José Abreu's sacrifice fly in the third before Chas McCormick's two-out RBI single gave the Astros a 2-1 lead. McCormick had three of Houston's nine hits and stole two bases.
"I thought we hit well, put up good at-bats," McCormick said. "With Framber on the mound and losing the last two, we had to finish the series strong. It was nice to come out there and show some energy and put up a good game."
Meyers' triple and Jose Altuve's third hit highlighted a three-run ninth inning.
With a perfect eighth, Bryan Abreu extended his scoreless streak to 21 2/3 innings, matching a career high with the majors' longest active streak.
Loftin had two of Kansas City's six hits as the Royals four-game win streak ended.
Astros: RHP Justin Verlander (11-8, 3.39 ERA) opposes Orioles LHP John Means (0-1, 5.40)
Royals: RHP Brady Singer (8-11, 5.51) opposes Guardians RHP Cal Quantrill (3-6, 5.40)