Danny Valencia and Chris Parmelee each 4, to avoid a four-game sweep.
Carl Pavano (8-11) gave up three runs -- one earned -- on 10 hits over 5 1/3 innings for the Twins, who snapped a five-game skid.
Paul Konerko went 3-for-4 with an RBI and run scored for the White Sox, who were looking for their first four-game sweep against Minnesota since 2008. A.J. Pierzynski, Juan Pierre and Alex Rios each had an RBI.
John Danks (6-11) allowed five runs -- four earned -- on six hits over six innings to take the loss. He struck out four and walked two for Chicago, which sits nine games back of the Tigers in the AL Central standings.
The Twins scored four runs in the third inning. Drew Butera walked, Ben Revere singled and Joe Mauer was hit by a pitch to load the bases with two outs. Valencia knocked in two runs with a single to right. Parmelee followed with a two-run double to center for a 4-0 lead.
"I had two strikes on me, so I was just looking for something up and over the plate," Parmelee said. "I just got a good pitch, took a good swing on it and a good thing happened."
Chicago got two runs back in the fifth. Pierre reached base on first baseman Parmelee's fielding error, moved to second on Alexei Ramirez's groundout and scored on Konerko's base hit to center. Pierzynski's double put men on second and third. Rios' sacrifice fly cut the gap to 4-2.
The White Sox tacked on another run in the sixth. Omar Vizquel reached base when he grounded into a fielder's choice, advanced to second on Brent Morel's single and crossed the plate on Pierre's double to right. Alex Burnett took over on the mound for Pavano and loaded the bases with two outs. Jose Mijares got Pierzynski to ground into a fielder's choice to keep it a 4-3 game.
Minnesota got the run back in the home sixth. Luke Hughes worked a one-out walk. After Joe Benson flied out, Danks attempted to pick off Hughes at first. Hughes started to sprint to second and first baseman Konerko's throw was way off the mark. The ball rolled into left field, which allowed Hughes to score all the way from first.
"I don't think we lost, I think we just gave this game away," White Sox manager Ozzie Guillen said. "There's no doubt in my mind we just gave it away. We had a lot of chances, [but] we couldn't get the hits."
Chicago made it a one-run contest again the eighth. Glen Perkins walked Pierre to start the frame. Pierre went to third on Ramirez's double and scored on Pierzynski's groundout. Rios struck out looking to keep it a 5-4 game.
Joe Nathan tossed a perfect ninth for his 13th save of the season.
The Twins and White Sox split 18 games this season...Danks fell to 6-9 lifetime against Minnesota...Pavano improved to 9-4 in his career against the White Sox...Chicago went 3-4 on a seven-game road trip...The White Sox have never swept a four-game series in Minnesota...Chicago's six-game winning streak in Minnesota came to an end...Pierre needs one more hit to become the 14th player to record his 2,000th career hit in a White Sox uniform.