CHICAGO -- The Royals still haven't scored on this visit to the South Side of Chicago.

Mark Buehrle and his bullpen buddies beat the Royals, 4-0, on Wednesday night as a sellout crowd of 37,838 fans watched the White Sox hold onto first place in the American League Central.

The Royals, who lost the series opener, 9-0, had not suffered back-to-back shutouts since April 11-12 when the Twins beat them, 5-0 and 2-0, at Kansas City.

Royals manager Trey Hillman gauged that the Royals had only seven "quality at-bats" during the whole evening.

"That's pathetic when you have seven quality at-bats in 32 plate appearances. You're not going to beat anybody, much less the first-place team," Hillman said.

The White Sox needed a victory to keep a half-game lead over Minnesota because the Twins had won earlier in the day.

Royals starter Luke Hochevar, once he got past the first inning, pitched very well. Buehrle, though, was much better. After he whizzed through seven shutout innings, giving up no walks and five hits, Octavio Dotel worked a perfect eighth inning and Bobby Jenks did likewise in the ninth.

Buehrle got his 10th victory this season and joined old-timers Eddie Cicotte and Doc White as the only White Sox pitchers to win 10 or more games in eight straight seasons. Against the Royals, Buehrle is 18-8 in his career.

"He executed his pitches. He did what he's known for doing, just shutting down an offense," the Royals' Mike Aviles said. "[Javier] Vazquez did the same yesterday and we just haven't been able to get the hit when we need it."

They almost had one in the second inning. After Billy Butler singled and Alex Gordon doubled, John Buck came up with two outs. He ripped a ball down the third-base line, but Juan Uribe gloved it and threw him out.

"When you hit a ball hard and it goes right at 'em, that doesn't help out when they've got luck on their side," Buck said. "I hit that ball down the line and Uribe back-handed it and that could've easily been two runs."

The White Sox already had two runs in the first inning -- Hochevar's downfall. Orlando Cabrera got an infield single that shortstop Tony Pena accelerated with a wild throw. Cabrera advanced to second on the error.

Pena was starting his first game since July 30. Aviles moved from short to second base.

Cabrera got around on a sacrifice bunt and Jermaine Dye's double. Later, Dye scored on Ken Griffey Jr.'s single.

"The first inning hurt me. My ball was up, it was flat and they had some timely hitting and scored some runs," Hochevar said. "Then, in the fifth, there was a comebacker right to me and I totally missed it and that cost me a run right there."

That was reference to A.J. Pierzynski's bouncer that Hochevar missed with runners at second and third with one out. Pena, backing him up, threw to first for an out, but a run scored. If Hochevar had fielded the ball, he might have had an out at the plate.

Hochevar, though, retired 10 straight batters in one stretch and got nine more outs in a row before ending his seven-inning outing.

"I was impressed by the way he was able to slow the game down. In certain situations that's kind of bit him," Buck said. "I made sure to tell him that was huge. There were some innings where he kind of sped up. That's where it's gotten Hochy and he didn't let it happen today."

The Royals' batters, however, let another shutout happen. They've also lost six of their last seven games. While the White Sox held onto first place, the Royals stayed in last place.