With the score tied 3-3 in the eighth, Cabrera singled with one out against Jesse Crain (2-3) and went to second on a hit by Jason Kipnis.
That brought up Swisher, who lined an 0-2 pitch up the middle for the decisive blow.
Kipnis went 2-for-3 with a two-run homer and Cabrera added a solo shot for the Indians, who took a second straight from the White Sox in the third contest of a four-game series.
Dayan Viciedo went 3-for-4 with an RBI for the White Sox.
Senate Democrats to pull all-nighter on climate change
Jessica Simpson shares three-way kiss with friends in photo