KANSAS CITY, Mo. — When the Kansas City Royals gave starter Brad Keller the lead with a five-run third inning, Keller made sure to show his gratitude.

The 23-year-old took care of the White Sox batters in the top of the fourth, striking out the side on 14 pitches to get his guys back to the plate.

"We take the lead and to go out there and get a shutdown inning, especially with three strikeouts is huge. Kind of get our offence confidence and we just went out there and kept it going," Keller said.

It was just what the Royals needed to stay hot Thursday, completing a four-game sweep of the Chicago White Sox with a 6-5 win.

Ian Kennedy gave up a run in the ninth, but struck out A.J. Reed looking with the tying run on second base to clinch the win and earn his 16th save in 19 opportunities.

The four-game winning streak is Kansas City's longest of the season and just the Royals' second series sweep this year. Kansas City has won six of seven games since the All-Star Break.

"We're playing really good ball right now," Keller said. "Our offence is alive and killing it right now, so it's a lot of fun to be around. The starting staff has been well and the bullpen has been lights-out. I think the break did us really well."

The White Sox, on the other hand, have lost seven in a row since coming back from the All-Star break and dropped a season-worst nine games under .500.

"We've got to keep playing," White Sox manager Rick Renteria said. "Hopefully we'll put something, a little streak on the opposite end of the spectrum as we move forward, but I'm not down on my guys. We're going to keep playing; we're going to do what we have to do to put ourselves back on track."

Keller (6-9) got off to a rocky start, allowing the first four batters of the game to reach base on a pair of infield hits, an error and a walk, leading to a pair of unearned runs. But Keller settled down after that and battled through 6 1/3 innings, allowing just a couple of runs after the first inning. Keller gave up nine hits, struck out seven and walked two.

"You just kind of step back off the mound after the first three guys reach and you just kind of take a breath," Keller said.

Yoan Moncada matched his career high, set last year, with his 17th home run in the top of the third to make it 3-0 before the Royals scored.

Cuthbert led off the inning with a shot to left-centre and Soler hit a two-run homer a couple of batters later to draw the Royals even. Billy Hamilton's two-run single later in the inning put the Royals ahead for good.

Cuthbert finished with three hits.

Bubba Starling had the best game of his young career. The 26-year-old had two hits, his first multi-hit day as a big leaguer, including his first extra-base hit when he doubled in the fifth inning and first career stolen base. Starling also scored twice, the second coming on Cam Gallagher's bunt single in the fifth inning, putting the Royals up 6-3. After going hitless in his debut, Starling has a hit in five straight games.

"He's going to have ups and downs, we all know it," Royals manager Ned Yost said. "But just let him play. Let him get his feet wet. He's done great."

White Sox starter Ross Detwiler (1-1) lasted just 2 1/3 innings, giving up five runs and eight hits, struggling with his command from the beginning.

"They just got comfortable; they saw what was going on and I didn't make the adjustment," Detwiler said.

In the four games this series, Chicago starters gave up 20 runs, 18 earned, in 19 innings and had an 8.53 ERA.

RENTERIA EJECTED

Renteria was ejected in the top of the second inning by home plate umpire Adam Hamari for arguing balls and strikes after Yolmer Sanchez's single. It was his fifth ejection this season.

"So, I might have yelled out 'both ways' previous to the hit," Renteria said. "He didn't respond at that moment. But that was it. Then he looked in and said he wasn't going to have it. I said just please pay attention to the field. He said don't tell him what to do. And I just asked him to pay attention to the field and he said goodbye."

STATS AND STREAKS

Whit Merrifield had his 15-game hitting streak end, going 0-for-5 at the plate. He extended his on-base streak to 24 games when he reached on an error in the fifth inning. ... Brad Keller made his fifth start this season and ninth in his career (out of 41 starts) against the White Sox. ... Kansas City is hitting .330 and has scored 49 runs in seven games since the All-Star break. ... Cam Gallagher had his third RBI bunt single this season and the Royals' fifth as a team. No other team has more than two.

The Royals swept the White Sox for the first time since July 21-23, 2017, and the first time in a four-game series since July 25-28, 1994.

UP NEXT

Kansas City: The Royals head to Cleveland for a three-game set with the Indians beginning Friday. Mike Montgomery (1-2) will make his Kansas City debut in his first start of the season. Montgomery made 20 relief appearances with the Chicago Cubs before being traded earlier this week. The plan is for Montgomery to throw around 45 pitches. Shane Bieber (8-3) will get the ball for Cleveland.

Chicago: The White Sox open a three-game set with Tampa Bay on Friday. Reynaldo Lopez (4-8) will get the start for Chicago looking to build on one of his best outings of the season on Sunday, when he allowed just one unearned run and three hits over six innings. Tampa Bay has yet to announce a starter.

___

More AP MLB: https://apnews.com/MLB and https://twitter.com/AP_Sports