Updated

Eric Hosmer tallied two hits with two runs scored and the Kansas City Royals used a four-run eighth inning to capture a 7-3 win over the Houston Astros in the middle test of a three-game set.

The Royals scored all of their runs over the last three frames.

"I thought we had some great at-bats," said Kansas City manager Ned Yost. "All of our guys did a great job to put some runs on the board."

Alex Gordon had three hits and a run scored for the Royals, who snapped a four-game skid. Bruce Chen (3-0) tossed a scoreless seventh to pick up the win.

Jimmy Paredes smacked a three-run homer, while starter Bud Norris fired six scoreless innings for Houston, which had won three of its last five tilts coming in.

"We're going to have to learn from the mistakes we made tonight," said Norris. "We got to capitalize tomorrow."

Paredes ripped a three-run shot just over the wall in right to make it 3-0 in the fourth, but the Royals pushed across two in the seventh and four more in the eighth to go ahead.

Hosmer and Lorenzo Cain hit back-to-back singles to lead off the seventh against Travis Blackley before Mike Moustakas grounded into a force out to put runners on the corners. George Kottaras struck out and Paul Clemens (1-2) toed the rubber in place of Blackley.

Pinch-hitter Alcides Escobar rolled a base hit up the middle to plate Hosmer before David Lough snuck a single through the hole on the right side to bring home Moustakas to reduce Kansas City's deficit to one.

Gordon walked and Billy Butler singled to start the eighth before Wesley Wright came on to pitch and gave up a base hit to Hosmer and load the bases with no outs.

Jose Cisnero took over on the mound and struck out Cain, but Moustakas singled through the hole on the right side to bring home Gordon. Cisnero then walked Kottaras to score Francoeur, who pinch ran for Butler, to put the Royals ahead. Hosmer was pushed across on Escobar's force out, and Moustakas came home when Altuve's relay throw on a potential inning-ending 4-6-3 double play bounced past Chris Carter at first base to make it 6-3.

Elliot Johnson came across on a passed ball in the ninth to increase to margin to 7-3.

Game Notes

Gordon is batting .500 (18-of-36) during a nine-game hitting streak ... The Royals went 4-for-11 with runners in scoring position and left seven men on base.