Punto drove in three runs and scored twice in Minnesota's third straight win and their ninth in 10 outings. The Twins remained 2 1/2 games behind Detroit in the chase for the American League Central crown.
Detroit has 11 games remaining and Minnesota has 10. The teams are scheduled to meet four times next week in Detroit.
Punto scored on a single by Orlando Cabrera in the third, and then doubled home a run in the fourth while the Twins were taking a 5-0 advantage. He also had a two-run single as part of a three-run seventh that gave the Twins an 8-4 lead.
Brian Duensing (5-1) lasted 5 2/3 innings to get the win, giving up three earned runs on nine hits. Joe Nathan grabbed his 44th save.
Jermaine Dye hit two home runs for the White Sox, who have fallen to the brink of playoff elimination by losing seven out of eight.
Mark Buehrle (12-10) gave up five runs on eight hits in 3 1/3 innings to take the loss. Since throwing a perfect game July 23, Buehrle is 1-7 with a 5.18 ERA.