Sale (9-11) won three straight starts for the first time this season, giving up three runs and nine hits in seven innings.
"He's got a pretty high standard of how good he is," White Sox manager Robin Ventura said. "You've seen him better than that, but he's been better and lost, too. So he'll take it."
Prior to his three-game winning streak, Sale was 1-9 in his previous 11 starts despite a 3.23 ERA. He's lost six times this season when allowing two earned runs or less.
Sale was happy to see the White Sox came right back after he allowed three runs on four consecutive two-out hits in the third.
Viciedo's homer capped a four-run fourth.
"Even when it wasn't going great, I still had that confidence in them to come back and score those runs," Sale said. "You go out there and have a three-run inning like that and your guys come back in and score four, that shows they are still fighting. So I've got to go out there and keep fighting as well."
Sale also got help from his defense, which turned three double plays, including a highlight reel stop and flip from second baseman Gordon Beckham that ended a two-on, one-out threat in the fifth.
Addison Reed worked a scoreless ninth to record his career-high 30th save in 35 chances.
Andrew Albers (2-1) took the loss after beginning his career with 17 1/3 scoreless innings, a record for a Twins starter. He allowed five runs and eight hits in seven innings.
Albers' streak ended in the first when Paul Konerko's groundout scored De Aza from third base.
Viciedo's shot gave him five RBIs in his last two games, equaling his total from July 10 through Aug. 14. He sat out five of Chicago's previous seven games while dealing with a left thumb injury.
Chicago added a run in the eighth when left fielder Josh Willingham lost Dunn's two-out fly in the twilight and the ball dropped for an RBI double.
Dunn finished with three hits, giving him six in his last 11 at-bats and extending his hitting streak to nine games. He batted just .156 in his first 55 games, but since June 8 is hitting .322.
Joe Mauer doubled and drove in two runs for the Twins, who lost for the fourth time in five games.
Chicago INF Conor Gillaspie said his bruised left hand felt better after leaving Friday's game in the eighth. Gillaspie said he was available for Saturday's game and hopes to be back in the lineup Sunday. ... Minnesota agreed to terms with INF Brad Boyer of the St. Paul Saints independent league team on Saturday. Boyer, 29, is hitting .337 with seven home runs and 50 RBIs in 78 games. The former draft pick of the Seattle Mariners (2005, 14th round) and San Francisco Giants (2006, 13th round) will report to Double-A New Britain. The Twins have had success with independent league signees, including Albers, LHP Caleb Thielbar also from the Saints and recently demoted Chris Colabello. ... Hector Santiago (3-7, 3.37 ERA) will try to win for the first time since June 21 as he takes the mound for the White Sox on Sunday. The lefty is 0-2 in his last nine starts. The Twins will counter with Samuel Deduno (7-6, 3.54 ERA).