Swisher's solo shot in the sixth handed the Indians a 3-0 lead and his bases-empty blast in the ninth capped the scoring for Cleveland, which completed a four-game sweep of Chicago and pulled within 1/2 game of wild-card co-leaders Tampa Bay and Texas.
Asdrubel Cabrera launched a three-run shot and Matt Carson went 3-for-3 with a solo homer in a game whose start was delayed 4 hours, 23 minutes by heavy rain.
Zach McAllister (8-9) allowed just one run on six hits over 6 2/3 innings, issuing one walk and striking out five.
Chicago starter Chris Sale (11-13) was roughed up for six runs on nine hits in a 5 2/3-inning effort.
Josh Phegley drove in the only run for Chicago, which has lost six straight games.