Nelson Velazquez and Edward Olivares homered for Kansas City, which had won consecutive games for the first time since winning seven straight July 28 to Aug. 4. The Royals have lost 22 of their last 30.
Jordan Lyles (4-16), the major leagues’ leader in losses, allowed three runs and seven hits in 5 1/3 innings.
Both starting pitchers worked around trouble most of the night, with only two clean half-innings through the first five innings. The White Sox finally got to Lyles in the fourth as Vaughn lined a one-out single to center and scored on Gavin Sheets’ two-out double.
The Royals answered with two runs in the bottom of the fourth on Velazquez’s 12th home run, a 439-foot shot to center. He has nine home runs in just 23 games with the Royals after being acquired in a trade-deadline deal with the Chicago Cubs. He homered in all three games of this series and in four of his last six games.
Vaughn put the White Sox back in front in the sixth with a two-run home run. His line drive just cleared the left-field fence, but it was enough to end the night for Lyles.
Moncada greeted reliever Tucker Davidson with a 433-foot home run on the first pitch.
Colas homered on the first pitch of the seventh inning to provide cushion for the White Sox.
Olivares had a two-run homer in the eighth for the Royals’ first by a pinch-hitter since May 13, 2022, to trim the deficit to 5-4.
Andrew Benintendi had an RBI single in the ninth to cap the scoring for the White Sox.
White Sox: SS Tim Anderson was scratched from the lineup with neck stiffness. He was replaced by Andrus. … LHP Garrett Crochet, who has been on the Injured List since June 20 with inflammation in his throwing shoulder, was sent to Double-A Birmingham on a rehab assignment.
White Sox: After a day off on Thursday, Chicago heads to Detroit for a three-game series against the Tigers. The team has not announced a starter for Friday.
Royals: After a day off, Kansas City opens a three-game series in Toronto on Friday. The Royals have not announced a starter.