With the White Sox trailing 3-1 in the fourth, they struck for four runs, all coming with two outs.
Adam Dunn began the rally with a double against Twins starter Andrew Albers and Avisail Garcia followed with another two-bagger, cutting the deficit to one run.
After Jeff Keppinger drew a walk, Viciedo cranked a 1-1 pitch into the left-field stands for a three-run shot.
Dunn (3-for-4) made it 6-3 with an eighth-inning RBI single and Alejandro De Aza capped the scoring with a two-run blast in the ninth as the White Sox took a second straight from their division rivals.
Chris Sale (9-11) earned the win, allowing three runs on nine hits over seven innings. He yielded one walk and struck out eight.
Albers (2-1) suffered his first major-league loss in his third start, getting tagged for five runs on eight hits over seven full innings.