Jose Quintana struck out seven in 6 2/3 innings to get the win, Chicago's fourth in six outings.
Dayan Viciedo doubled home two runs in the Chicago first to quickly overcome a home run by Minnesota's Joe Mauer. Keppinger and Dunn expanded the lead in the third and the White Sox added an unearned run in the eighth.
Quintana (7-4) allowed two runs on six hits and was backed up by three relievers. Addison Reed worked the ninth for his 29th save.
The loss was hung on Kevin Correia (8-9), who allowed four runs on nine hits in 7 1/3 innings.