Bruce Chen (12-8) allowed one run on two hits and a walk through eight innings in the Royals' ninth win in 11 games.
"He made some adjustments and threw a very, very good ball game," Royals manager Ned Yost said.
Zach Stewart (2-6) allowed nine runs on 12 hits in four-plus innings as Chicago lost for the 10th time in 13 games.
"They're a good hitting team and they're not a selfish team," Stewart said of the Royals.
Kansas City struck first on Hosmer's leadoff home run into the bleachers in right field in the second inning.
The Royals added to their lead in the third. Escobar singled to start the frame and Lorenzo Cain followed with a double, putting men on second and third. A Melky Cabrera groundout to second plated Escobar before Billy Butler's sacrifice fly to right brought Cain across the plate.
Perez hammered a three-run homer and Escobar then smacked a solo shot in the fourth to give the Royals a 7-0 lead.
Francoeur added a two-run home run in the fifth, and Johnny Giavotella scored on a wild pitch and Butler doubled in Cabrera in the eighth to finalize the scoring for Kansas City.
Chicago got on the board in the seventh inning on Konerko's solo home run to left.
Royals left fielder Alex Gordon missed the game with the flu...Moustakas extended his hit streak to 11 games...With the home run, Francoeur became the fourth Royals player to hit 20 home runs and steal 20 bases in a season. He joins Carlos Beltran, Bo Jackson and Amos Otis...Chen improved to 3-4 in 15 career meetings against the White Sox...Stewart dropped his third straight start...Kansas City leads the season series 10-6, meaning Chicago will lose the series for the first time since 2000.