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.
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'