CHICAGO (AP) - The White Sox didn't completely break out of their offensive funk. But they scored just enough runs to win for the third time in 11 games.
Todd Frazier tied for the AL lead with his 13th home run, Melky Cabrera drove in two runs and the Chicago beat the Kansas City Royals 3-2 Sunday to avoid what would have been its first losing sweep this season.
"Hopefully, we can keep tacking on some more runs, because we still left a couple out there today that we could have easily gotten," Frazier said. "We're still focused and determined to get those in."
Carlos Rodon (2-4) allowed two runs and pitched into the seventh inning for his first victory since April 13.
"We didn't want to get swept during that series," Rodon said. "I came out and pitched the best I could and gave the team a chance to win. We did that today. All around good baseball."
David Robertson overcame dizziness to get three outs for his 11th save in 13 chances for the AL Central leaders.
Lorenzo Cain and Paulo Orlando had two hits apiece for the World Series champions, who had won six of their previous eight.
Yordano Ventura (4-3) gave up three runs and six hits in six innings for the Royals, who were trying for their first road series sweep. He is 3-0 in four home starts but 1-3 in five road games.
Rodon allowed eight hits and struck out four in his first time facing Kansas City.
"His confidence grows as he goes along, of just who he is and where he belongs and how he's doing," White Sox manager Robin Ventura said.
Kansas City had four singles — including Orlando's two-out RBI hit — to take the lead in the second. Orlando drove in three of the Royals' eight runs in the series. He also doubled and is hitting .364 (20 for 55) in his career against Chicago.
Frazier's homer, which matched Baltimore's Mark Trumbo for the AL lead, brought Chicago even in the fourth.
Cabrera put the White Sox ahead with a two-run single in the fifth on an 0-2 pitch.
"We needed to win this game," Cabrera said.
The White Sox were 1 for 11 with runners in scoring position, dropping to 1 for 23 during the series.
"We've been scuffling with guys on base, especially with two outs," Ventura said.
Omar Infante had a sacrifice fly in the sixth.
"You always want to win the series. That's your No. 1 goal," Royals manager Ned Yost said. "You put yourself in a position to sweep them, but Rodon did a nice job of pitching today."
Struggling White Sox 1B Jose Abreu had the day off. He is hitting .243 with six home runs and 39 strikeouts. Jerry Sands started at first base and DH Jimmy Rollins hit second.
"I've been swinging at a lot of pitches out of the zone and that's not my approach," Abreu said through an interpreter.
Both right fielders made impressive defensive plays. Orlando robbed Austin Jackson of an extra-base hit with a runner on third in the sixth by making a catch against the wall. Chicago's Adam Eaton made a sliding catch in foul territory for the game's first out.
Royals: LF Alex Gordon (bruised right wrist) is day to day after he collided with 3B Mike Moustakas while they pursued a foul popup in the seventh. Both remained in the game, and Whit Merrifield pinch hit for Gordon the next inning.
White Sox: Ventura and a trainer checked on Robertson during the final batter in the ninth. Robertson said he felt dizziness but was doing fine after the game. . C Kevan Smith was reinstated from the 15-day disabled list and optioned to Triple-A Charlotte before Sunday's game. He was on the DL since April 26 (retroactive to April 24) with sacroiliac joint dysfunction. He has yet to play in the majors.
Royals: RHP Ian Kennedy (4-3, 3.24 ERA) is to start Monday's series opener against Minnesota and RHP Ricky Nolasco (1-2, 4.74).
White Sox: RHP Mat Latos (5-1, 4.00) is to start a doubleheader opener Monday against Cleveland and RHP Mike Clevinger (0-0, 6.75). RHP Erik Johnson (0-1, 7.20) is to start the second game for Chicago against RHP Cody Anderson (0-3, 7.99).