Austin Jackson led off the ninth with a triple off Jesse Crain (2-2) and two outs later Cabrera socked a pitch over the right field fence for his 12th homer of the year as the Tigers evened their three-game series with Chicago.
Justin Verlander (6-3) held the White Sox to two runs over eight innings, logging his seventh straight start without a loss. He scattered seven hits and a walk while fanning seven.
Jose Valverde racked up his 15th save with a 1-2-3 ninth.
Brennan Boesch also went deep for the Tigers.
White Sox starter Edwin Jackson went six innings, allowing seven hits and a pair of runs.
Gordon Beckham hit a two-run homer for the Chisox.