Avisail Garcia’s two-out single drove in the go-ahead run on the sixth straight hit off reliever Joba Chamberlain (0-1). All of them came after he retired the first two batters in the inning.
Zach Putnam (1-1) worked an inning to get the win and David Robertson earned his fifth save for the White Sox (10-14), who improved to 8-3 at home this season.
Chicago trailed 6-3 in the eighth after Victor Martinez drove in his fourth run of the night for Detroit.