After Conor Gillaspie singled to load the bases, Viciedo laced a 2-2 pitch into center field that eluded a diving Brandon Barnes, allowing all three runners to score.
Addison Reed racked up his 20th save for the White Sox, who snapped a four-game losing streak.
Bud Norris (5-7) absorbed the loss, surrendering four runs on eight hits over six full innings.
Barnes went 3-for-5 and Jason Castro drove in a pair of runs for Houston.
Millions of Getty images now available for free via embed tool
NBC reportedly holds celebs hostage to Jimmy Fallon's show