The win was just the second in six games of the American League Central-leading Tigers.
Cabrera sent a towering drive over the left-field fence in the third inning, driving in Bryan Holaday and Austin Jackson and erasing a 3-0 Chicago lead. It was his 38th home run of the season. Only Baltimore's Chris Davis, with 44, has more in the majors this year.
The homer gave Cabrera 114 RBI, which leads Davis by two.
The Cabrera home run came off White Sox starter John Danks (2-10), who is winless in his last eight starts. Danks was changed with all six runs (four earned) and nine hits in 7 1/3 innings.
Victor Martinez and Matt Tuiasosopo had singles before Omar Infante broke the 3-3 tie with a base hit with one out in the sixth. After the inning's second out, Holaday was hit by a pitch. Jackson reached on an error by Chicago third baseman Conor Gillaspie, a bad throw that allowed Infante and Holaday to score.
Alexei Ramirez had an RBI single for the White Sox in the eighth to close out the scoring.