Eric Hosmer also homered as Kansas City (58-58) snapped a five-game losing streak.
Jose Abreu hit a pair of solo home runs to lead the White Sox at the plate. Leury Garcia drove in two more runs for Chicago (45-69), which had its four-game winning streak come to an end.
Cabrera stung his former team with a two-run shot to erase a 4-3 deficit in the eighth. He lifted a low pitch to the opposite field for his 16th home run of the season and his third since Kansas City acquired him from Chicago.
Royals left-hander Scott Alexander (3-3) earned the win in relief. He replaced right-hander Ian Kennedy, who allowed three runs on seven hits in 6 1/3 innings.
White Sox left-hander Aaron Bummer (1-3) took the loss out of the bullpen after giving up Cabrera's home run.
Right-hander Kelvin Herrera pitched a scoreless ninth inning to earn his 25th save for the Royals.
Abreu pulled the White Sox within 3-2 in the sixth inning when he belted his second home run of the game and his 21st of the year. The 410-foot shot over the left-field wall gave him nine career multi-homer games.
Garcia gave Chicago a 4-3 lead with a two-out, two-run single in the seventh. His line drive up the middle scored Tim Anderson and Omar Narvaez, who slid just in front of an attempted tag by catcher Drew Butera.
The Royals grabbed an early lead on Hosmer's solo home run into the left-field bleachers in the first inning. The blast marked Hosmer's 19th home run and his third in the past seven games.
Kansas City added two more runs in the second to increase its advantage to 3-0. Alcides Escobar ripped a triple to the wall in right-center field, which scored Mike Moustakas. Three batters later, Whit Merrifield singled to center field to push Escobar across the plate.
Chicago trimmed the deficit to 3-1 in the fourth on Abreu's 20th home run. Abreu became the first player in White Sox history to hit 20-plus homers in each of his first four seasons.
NOTES: White Sox OF Avisail Garcia returned to the starting lineup Saturday after receiving a day off because his legs were tired. He went 2-for-3. ... Royals C Salvador Perez (strained intercostal muscle) played catch Saturday and might try to take some swings next week as he nears a return. Perez has been out since Aug. 5 ... White Sox DH Matt Davidson (bruised right wrist) will remain on the 10-day disabled list for an indefinite period after experiencing a setback this week. Davidson was injured Aug. 1 when he was hit by a pitch from Toronto Blue Jays RHP Marcus Stroman. ... Royals OF Melky Cabrera extended his hit streak to eight games.