KANSAS CITY, Mo. (AP) Eric Hosmer was happy to be back at Kauffman Stadium after a rough road trip.
He had three hits, including a home run, and drove in four runs as the Kansas City Royals rallied to defeat the Chicago White Sox 7-5 on Friday night.
That is one more RBI and matched the number of hits he had on the just concluded six-game trip when he was 3-for-25 (.120).
He laced a two-run single with two outs in the seventh to put the Royals ahead. He homered in the sixth and drove in a run in the first inning with a groundout.
''I faced (Zach) Duke a couple of times and he's got really good offspeed stuff,'' Hosmer said of his seventh inning hit. ''I told myself that's what he likes to go to. I just wanted to see it. I put something in play, trying to make something happen and finally had some luck on my side, our side.''
The White Sox used five pitchers in the Royals' four-run seventh with Matt Albers (1-4) taking the loss. The inning included Brett Eibner's double, his first major league hit, and Whit Merrifield's two-run single.
''Seemed like anything we tried to do it didn't work,'' White Sox manager Robin Ventura said. ''Not only can they swing it, but they've got some guys that can, if they put the bat on it, can really beat some things out.''
Royals starter Danny Duffy retired the first 16 batters he faced on 59 pitches before giving up five runs on his next 17 pitches.
''For 5 1-3 innings, that's the best I've ever seen him pitch,'' Royals manager Ned Yost said. ''I didn't see that coming.''
Avisail Garcia, Dioner Navarro and Austin Jackson hit consecutive singles with one out in the sixth to load the bases for Melky Cabrera, who cleared them with a first-pitch grand slam. It was his first grand slam since July 29, 2011, at Cleveland, while with the Royals.
Todd Frazier then took Duffy deep to left. He is tied for the American League lead with 15 home runs. It was the first time this season the White Sox have hit back-to-back home runs.
''That's probably the best-worst game, I've ever had,'' Duffy said.
Peter Moylan (2-0) picked up the victory with a scoreless seventh. He is 6-0 since his last loss on Sept. 7, 2011, while with Atlanta. Wade Davis worked the ninth, striking out two, for his 13th save in 14 opportunities.
The Royals added a run in the eighth when Paulo Orlando, who extended his hitting streak to 10 games with a single, scored on Jarrod Dyson's sacrifice fly.
''What are you going to do? There's not much to say,'' Frazier said. ''They kept clawing back. They came after us that one inning. They kept chipping away. That's what they do. We've got to find a way to put the fire out and we couldn't do it.''
White Sox right-hander Miguel Gonzalez allowed three runs and eight hits in 6 1-3 innings.
Royals: DH Kendrys Morales was out of the lineup with a sprained right middle finger. . RHP Chris Young (right forearm strain) could come off the DL soon. He will be used as a reliever when he is activated after going 1-5 with a 6.68 ERA in seven starts.
MAKE UP DATE
The White Sox-Royals game that was rained out Thursday has been rescheduled for Sept. 19, an afternoon start at Kauffman Stadium.
The White Sox have opted to start LHP Chris Sale on Sunday against the Royals, instead of holding him back for a Monday start against the New York Mets. Manager Robin Ventura acknowledged since it was a division game ''does'' play into the decision. LHP Carlos Quintana will start Monday at New York.
White Sox: LHP Carlos Rodon will try to beat the Royals in consecutive starts. He held the Royals to two runs and eight hits over 6 2/3 innings on Sunday.
Royals: RHP Yordano Ventura is 3-0 with a 3.57 ERA in four home starts.