KANSAS CITY, Mo. (AP) - Jordan Lyles kept matching James Shields pitch for pitch, the young Astros starter dueling with the veteran Royals ace to a stalemate through seven innings Friday night.
Houston's bullpen couldn't come through for him in the eighth.
Billy Butler drove in Eric Hosmer with the go-ahead run, and Kansas City went on to beat the Astros 4-2 for its first three-game winning streak in a month.
``It's pretty tough, especially Lyles throwing like he did, to give that up for him,' said reliever Josh Fields, who served up Butler's deciding one-out double. ``Lyles pitched a great game. He battled the whole game. He did a great job of keeping them off balance.'
Wesley Wright (0-2) didn't fare nearly so well, allowing a single to Hosmer - the only batter he faced. Fields came in and got Salvador Perez to pop out, but Butler took advantage of a shift toward right field by guiding a pitch down the third-base line.
David Lough's RBI double moments later created a cushion for the Royals, who also got a two-run homer from Perez earlier in the game to help them win three straight for the first time since May 1-5 - a stretch interrupted twice by weather postponements.
Kelvin Herrera (3-4) worked a perfect eighth inning in relief of Shields, and Greg Holland pitched the ninth for his 11th save and second during the Royals' modest winning streak.
``It's a lot of fun, man. It was a big win for us,' Hosmer said. ``We're starting to turn things around, we're starting a little winning streak and we want to keep it going.'
Trevor Crowe and Jason Castro drove in the only runs for Houston, which had won six straight on the road, its best run since July 18-22, 2005.
``That was real tough to drop a game like that,' Fields said.
Shields allowed the leadoff hitter to reach base in each of the first four innings, and again in the seventh, but for the most part the Royals' ace kept limiting the damage.
He left Brandon Barnes standing on third base in the first inning, and induced double-play grounders off the bat of Marwin Gonzalez to end the second and fourth. Shields finally allowed a run when Crowe followed up another leadoff single by Barnes with a triple in the third.
Even then, Shields escaped more trouble by striking out the next three batters.
``Today was a grind day,' Shields said. ``I think I was in trouble every inning but one, but we made some unbelievable plays on defense.'
Lyles matched the former All-Star almost the entire way, cruising through the first inning before setting the Royals down in order in the second and third.
Kansas City finally got to him in the fourth when Hosmer ricocheted a single off Lyles and Perez sent a pitch sailing over the bullpen in left field for a two-run homer.
Lyles buckled down, though, and the Astros eventually pulled even.
It happened in the seventh after Gonzalez led off with a single. Shields retired the next two batters before Castro's double to right field knotted the game 2-all.
That left both starting pitchers to watch things play out from the dugout.
Lyles, coming off consecutive wins for the first time in his career, gave up six hits and a walk in seven innings. He's allowed two earned runs or fewer in five straight outings.
``For the most part, I threw the ball down in the zone and got some quick outs,' he said. ``It was all right. You can't get too down about seven innings.'
Shields allowed nine hits and three walks in his seven innings but failed to win for the seventh straight start. He hasn't picked up a win since April 30 against Tampa Bay, even though he's only allowed more than two earned runs once over that span.
Not that it matters to him, so long as the Royals win.
``We're playing some baseball now,' Shields said. ``We're scrapping. I think we're starting to hit better now, we're scoring some runs and it's good to see.'
NOTES: Astros 2B Jose Altuve (groin) was held out of the lineup again. ``He wants to play,' manager Bo Porter said, ``but I'm not going to listen to him. I'm going to listen to the experts and they say he could use another day.' ... Astros LHP Erik Bedard faces Royals RHP Ervin Santana on Saturday night.
Copyright 2016 by STATS LLC and Associated Press.
Any commercial use or distribution without the express written
consent of STATS LLC and Associated Press is strictly prohibited.