KANSAS CITY, Mo. - John Danks loves it in Kansas City.

The Royals might prefer the city barred the White Sox left-hander from future visits.

Danks continued his mastery over the Royals with a complete game and Adam Eaton matched his career high with four hits, including a three-run homer, as the Chicago White Sox beat the Kansas City Royals 12-1 Friday night.

Alexei Ramirez also had four hits — tying his career high — drove in two runs and scored three times. Tyler Flowers also hit a three-run homer in the fourth inning.

Eaton went back-to-back with Jose Abreu, his 25th, in a five-run eighth off Jeremy Guthrie.

Danks (7-12), who snapped a personal four-game losing streak, owns a 10-2 record in 21 career starts against the Royals. Three of his seven victories this season are over the AL Central-leading Royals, and he has a 2.14 ERA career at Kauffman Stadium.

"I've always enjoyed coming here in general," Danks said. "This is one of my favourite cities to come to in the course of the summer. I've spent a lot of time in this ballpark."

The Royals managed just seven hits off Danks after scoring 27 runs and notching 34 hits in crushing Detroit the previous two games.

Royals manager Ned Yost has no explanation for why Danks, who has a career record 18 games below .500, dominates the Royals.

"If you figure it out, let me know, because I have not figured it out," Yost said. "I mean seriously I haven't. Certain players have certain teams that they do really well against. It's like certain players have certain pitchers that they do well against and other guys that they don't and there's just no explanation for it. I don't know."

The White Sox scored three runs in the first off Kris Medlen (3-1), with Ramirez contributing a two-run single. Avisail Garcia singled home Jose Abreu with the first run of the inning.

Medlen, who had allowed just six runs and nine hits over 11 1-3 innings in his first two starts, was roughed up for seven runs on 11 hits in 5 2-3 innings.

The Royals avoided a shutout when Kendrys Morales' sacrifice fly in the ninth scored Alcides Escobar.

NUMBERS AND STATS

The White Sox won their first game at Kauffman Stadium after dropping the first six. ... Ramirez's four-hit game was the 14th of his career, while Eaton accomplished it eight times. ... Royals CF Lorenzo Cain went 0 for 3, snapping his season-high 11-game hitting streak. ... Danks threw a season-high 121 pitches, two shy of career high.

TRAINER'S ROOM

Royals: 3B Mike Moustakas (hamstring strain) was out of the lineup for the fourth consecutive game. ... RHP Kelvin Herrera and OF Alex Rios worked out in the morning at Kauffman Stadium for the first time since contracting chickenpox. They left before the rest of the team arrived.

UP NEXT

White Sox: LHP Jose Quintana has a 5.63 ERA in four no-decisions against the Royals this season.

Royals: LHP Danny Duffy is 5-2 with a 3.08 ERA in his past 11 starts after going 2-4 with a 5.44 ERA in his first 10 starts.