After escaping trouble in each of the first four innings, Peavy (7-7) settled down to earn just his third win in 11 starts since the beginning of July.
Pitching despite battling flu-like symptoms, he walked two and threw 73 of his 105 pitches for strikes.
"I've been battling a head cold, congestion," said Peavy. "I was a little more aggressive. We didn't have a whole lot of 1-2-3 innings, but I had a good game plan. I stretched out enough to get a win."
"He had all of his pitches working," said Twins manager Ron Gardenhire, who watched his hitters strike out 14 times against five White Sox pitchers.
The performance followed Zach Stewart's near-perfect game for Chicago on Monday, when the White Sox swept a doubleheader to open this four-game series.
Facing three games in two days, the struggling Twins made a rare move.
They became the first team in 25 years to start three players making their major league debuts in the same game.
Australian-born righty Liam Hendriks (0-1) pitched admirably in his debut, but was saddled with the loss after giving up three runs on four hits in seven innings.
First baseman Chris Parmelee and center fielder Joe Benson were also called up from the minor leagues to make their MLB debuts, but arrived to see the Twins lose their fifth straight game.
Parmelee was 2-for-4 with leadoff singles in the second and fourth innings, but was stranded at third base both times. Benson batted first in the order and went 0-for-3 with a walk.
Hendriks got his first major league strikeout in the first inning, getting A.J. Pierzynski on a hard-breaking curveball that the White Sox DH swung at wildly.
"I went out there and attacked my pitch plan," Hendriks said. "It worked pretty good. I walked a couple of guys, which is kind of irritating for me. I hate walking people, but I got out of it and got through it pretty well."
The White Sox got to Hendriks in the second inning. Adam Dunn drew a one-out walk, went to second on a grounder and scored on De Aza's bloop single into left field to give the White Sox a 1-0 lead. De Aza was thrown out trying to take second base.
In the fourth, Rios knocked Hendriks' first-pitch slider into the left field seats for his ninth homer of the season and a 2-0 Chicago lead. Two batters later, Hendriks flashed his glove on a sharply-hit grounder by Tyler Flowers for the inning's final out.
In the fifth, De Aza hit a leadoff triple and came home on Brent Morel's single for the game's final run.
The Twins wasted scoring chances in each of the first four innings against Peavy. After stranding a runner at second base in their first at-bat, they left someone at third in each of the next three frames before Peavy finally set them down in order twice.
Peavy came out with a runner on first base in the seventh and Will Ohman gave up a single. Jason Frasor got the last two outs but was replaced by Matt Thornton after giving up a single in the eighth. Thornton got three quick outs and Sergio Santos struck out two in a perfect ninth inning for his 29th save.
The Padres started four players making their MLB debuts in 1986...The White Sox are 8-1 in the last nine meetings between the teams and 9-8 against the Twins this season...Second baseman Matt Tolbert was also called up by the Twins, but didn't play. The team also designated left-hander Chuck James for assignment...Peavy is 3-6 in 11 starts since the beginning of July...The Twins are 8-28 in their last 36 games.