Liriano tossed a season-high seven innings, allowing just one run on four hits and two walks with five strikeouts. The left-hander has a 2.41 ERA with 40 strikeouts in 37 1/3 innings over his last six outings.
"I think it was one of my best games so far this year," said Liriano, who picked up his second win. "I was glad to give my team a chance to win a ballgame. Everything is getting better. I'm doing my job better."
He pitched out of a few jams, including in the third when Alexei Ramirez reached on an infield single and advanced to second on a throwing error from shortstop Brian Dozier with one out. He was able to get Gordon Beckham to fly out to right field and struck out Alejandro De Aza to end the frame.
Liriano also ended the fourth with another big strikeout. Paul Konerko walked and Alex Rios singled with two outs before he struck out A.J. Pierzynski to strand both runners.
"He had good stuff tonight," said Kevin Youkilis, who was making his Chicago debut. "He was throwing his fastball over and commanding it where he wants. When he does that, he's one of the best pitchers like he's been in the past."
The White Sox didn't score until the seventh, when a Ramirez sacrifice fly brought home Rios, who doubled to lead off the inning.
"I just think he continued to do what he's done in the past," catcher Drew Butera said. "For him, it's all about staying in control. When he gets out of whack and tries to throw pitches too hard or tries to do too much is when he gets in trouble."
The Twins had already scored three runs by then, as they got on the board early against Peavy. They got a run in the first inning on a sacrifice fly from Joe Mauer to score Denard Span, who led off the frame with a double and reached third on a bunt single from Ben Revere.
And they tacked on two more in the second with the help of a throwing error from Rios. Trevor Plouffe singled with one out and scored on Dozier's single, as Rios' throw from right field to third base went past Youkilis.
Dozier came around to score on a single from Jamey Carroll but the Twins stranded two runners after Beckham made a diving play at second base to rob Revere of an RBI hit to end the inning.
"We wanted to get an early lead on Peavy because it's not easy to get that many runs against him," said Revere, who went 4-for-5. "Peavy is a pretty good pitcher with runners in scoring position, but we got the key ones we could get early. And luckily we got the win."
The Twins added an insurance run in the seventh on a sacrifice fly from Plouffe with the bases loaded. Rios made a nice catch on a sinking liner but Mauer was able to score from third. Minnesota, though, left the bases loaded after Drew Butera grounded out after Dozier walked.
Left-hander Glen Perkins tossed a scoreless eighth before handing it off to right-hander Jared Burton, who picked up his second save in as many days.
"We've got a long way to go here but they're in our division and leading our division, so it's a good start to win the first one," Twins manager Ron Gardenhire said. "We'll go from there. Our goal is still just to get .500 and we have a ways to go to get there."