CHICAGO -- With a lot on his mind and not much rest, Mark Buehrle managed to be his vintage self.
Nick Swisher hit a three-run homer, Jermaine Dye had three hits and Jim Thome reached base four times as the White Sox snapped a three-game losing streak.
Pitching on three days rest so he could attend his grandfather's funeral in Missouri, Buehrle (8-8) gave up a leadoff triple to Hank Blalock in the second inning and then retired 15 of the next 16 batters.
"I said in pregame he was going to do something special today," Swisher said. "Dealing with a loss like that, definitely puts a damper on yourself and your family and he went out there and pitched a great game. We wanted to be behind him a hundred and fifty percent and we got him some runs early and he was the traditional Mark Buehrle."
Buehrle's last start against the Rangers was his no-hitter on April 18, 2007. His only blemish on Tuesday night came in the eighth when he gave up a solo shot to Chris Davis.
"Pitching stops hitting," Rangers manager Ron Washington said. "I keep saying that. Nobody's listening. Pitching stops hitting. How can you keep scoring seven runs a night. Nobody does that in the game of baseball."
Washington took notice of Buehrle when he stranded Blalock in the second inning as the left-handed veteran retired Brandon Boggs, Davis and Jarrod Saltamacchia.
"You got three young kids and he took them to school. Cut that fastball in on their hands and wouldn't allow them to extend," said Washington.
Buehrle left to a loud standing ovation after allowing one run on six hits and no walks.
"Obviously, I had a feeling why the crowd was going crazy. But not as much as I thought they would. The next couple of days will be a little bit more emotional," said Buehrle.
Buehrle is 6-2 with a 1.76 ERA in his last nine starts.
"This is one of the better stretches I have been on in my career for this amount of time. I had some good games, some good stretches, but for this many games in a row I have thrown the ball pretty well," Buehrle said.
Luis Mendoza (2-4) gave up an RBI double to Dye in the first inning and got roughed up in the fourth, allowing Swisher's three-run homer and A.J. Pierzynski's RBI single to put Chicago up 5-0.
Mendoza was pulled after giving up consecutive singles to Dye and Thome in the fifth. He allowed six runs on nine hits in four-plus innings.
After getting the first two outs in the seventh inning, Justin Nippert walked Thome and Swisher around a single by Konerko before Ramirez's slam.
White Sox reliever Nick Masset was forced out when Milton Bradley's liner went off his chest in the eighth inning.
White Sox manager Ozzie Guillen won his 400th game. ... White Sox 3B Joe Crede was a late scratch from the lineup with lower back stiffness and will play on Wednesday against the Rangers. ... The Rangers have not committed an error since the All-Star break. ... Dye missed Monday's game after getting plunked on the right knee by a pitch on Sunday.