Updated

The White Sox will be happy to stop playing the Royals and start rooting for them.

Despite another solid start from All-Star pitcher Chris Sale, the White Sox couldn't figure out crafty Kansas City left-hander Bruce Chen on Wednesday night. Alex Gordon and Billy Butler provided the offense and the Royals held on 3-0 to end Chicago's five-game winning streak.

The numbers that are even more jarring: Kansas City is 8-2 over its last 10 games against the White Sox, who saw their lead in the AL Central trimmed to two games over the Detroit Tigers.

The Tigers and Royals will meet seven times before the end of the season.

"We're going to have to win no matter what. We have to take care of our business," White Sox manager Robin Ventura said. "It's difficult when you play like this."

The White Sox (81-67) wound up going 1 for 12 with runners in scoring position, stranding four at third base, four more at second and three at first. That included a bases-loaded, no-out jam in the fourth inning in which they failed to score anything.

Chen managed to get Dayan Viciedo to foul out down the third-base line, Alexei Ramirez to pop out to the catcher, and then struck out Tyler Flowers to end the threat.

"It just seemed like we were running a pop-up drill," said Ventura, whose team won the series opener Tuesday night despite going 0 for 5 with runners in scoring position.

"You have to tip your hat to them," Ventura said. "Bruce was getting out of every jam."

Chen (11-12) scattered five hits and three walks over 6 2-3 innings to win for just the second time in six starts. Along with his masterful escape job in the fourth inning, he also got an assist from reliever Kelvin Herrera to get out of trouble in the seventh.

Herrera then pitched around two base runners in the eighth, and Greg Holland yielded a two-out double in the ninth before finishing for his 14th save in 17 chances.

"Bruce Chen was right on top of his game," Royals manager Ned Yost said. "I told him after he was done, 'You did a great job of pitching yourself into trouble in the fourth inning and even a better job of pitching yourself out of it.'

"Bruce did a phenomenal job against a really good offensive club."

Sale (17-7) kept the White Sox in the game all night, stranding a pair of runners in the first and third innings, and single base runners in the fourth and fifth.

His only blemishes wound up being costly.

The first of them came on Butler's sacrifice fly in the third inning, and the other came after a leadoff double by Eric Hosmer in the seventh. Sale intentionally walked Alcides Escobar, who was 3 for 3, to bring up Gordon, who drilled a pitch to the wall in left field.

Viciedo appeared to have a read on the ball, but he couldn't make the catch and the ball fell to the warning track, allowing two runs to cross the plate and giving Kansas City a 3-0 cushion.

"Things like that are going to happen," Sale said. "Alex just crushed it."

That was enough to give the 23-year-old Sale his third loss against Kansas City — he's only lost four other times this season. He's also just 2-5 over his last seven road starts.

"Chen came out and threw as well as he's every pitched tonight against us," Sale said, his voice barely above a whisper. "He just out-pitched me tonight."

NOTES: Alejandro De Aza matched a career high with four hits for Chicago. He was a homer shy of the cycle. ... LHP Francisco Liriano will pitch the series finale for Chicago against RHP Jeremy Guthrie. ... Both managers announced their weekend rotations. The White Sox will go with Jake Peavy, Jose Quintana and Gavin Floyd against the Angels, while the Royals will start Luis Mendoza, Will Smith and Jake Odorizzi against Cleveland. Odorizzi will be making his big league debut.