Chicago pulled away late after trailing by a run heading into the seventh inning.
Mark Buehrle (12-9) snapped a personal three-game losing streak with a six-inning effort, during which he allowed two runs on four hits.
Morel doubled home the tying run in the seventh and Alejandro De Aza put the White Sox in front later in the inning with a two-run single.
Chicago then produced its three eighth-inning homers, Morel's blast accounting for two runs.
Ubaldo Jimenez (4-3) threw four scoreless innings before losing the lead. He gave up four runs on six hits in seven innings to take the loss.