Viciedo's two-run single in the second inning erased a 1-0 deficit and put the White Sox ahead to stay, and his two-run clout in the fourth gave Chicago a 6-2 advantage.
Alex Rios also contributed a two-run blast while Alexei Ramirez went 2-for-4 with two runs scored for the Chisox, who came into the contest tied with the Detroit Tigers for first place in the American League Central.
Jake Peavy (8-7) yielded just one earned run on six hits over six innings, walking two and striking out six to notch only his second win in eight starts.
Twins starter Nick Blackburn (4-6) was bombed for eight runs on 10 hits while lasting just 4 1/3 frames.
Justin Morneau got the only RBI for Minnesota, which fell to a season-worst 18 games under .500 (40-58).