Chicago won its fourth straight and added to the struggles of the Angels, who have lost three in a row and have just 15 victories in 42 games this season.
Sale (5-2) gave up all three Los Angeles hits and struck out 12 over 7 2/3 innings. Jesse Crain finished off the eighth and Addison Reed was perfect in the ninth while grabbing his 14th save.
Alex Rios hit a home run in the first and the White Sox clung to a 1-0 lead until Conor Gillaspie delivered an RBI single in the seventh.
Adam Dunn added a solo homer in the ninth, his 10th of the season.
C.J. Wilson (3-3) took the loss, giving up just two runs on six hits in seven innings.