fourth inning off K.C. starter Yordano Ventura (4-3), the White Sox kept the pressure on in the fifth.
Alex Avila led off the inning with a walk and Austin Jackson singled before Adam Eaton lined out to star center fielder Lorenzo Cain and Jimmy Rollins grounded out to second baseman Omar Infante, moving Avila and Jackson up a base.
That brought Frazier to the plate, but Yordano Ventura wanted no part of him and issued a four-pitch walk.
Cabrera followed Frazier, and he blistered an 0-2 quick-pitch fastball to center field to score Avila and Jackson to put the Sox in front for good.
“I found a good pitch to hit,” Cabrera said through a translator. “It was a very good pitch and I hit it very well. We won the game. We have to also thank (Carlos) Rodon because he pitched a very good game for us. It was a needed game for us. We needed to win this game.”
Winning for the first time since April 13, Rodon (2-4) went 6? innings and allowed 2 runs on 8 hits.
“Fastball command was good,” Rodon said. “A couple of sliders. They were swinging early, but it’s a good hitting team. They got 8 hits and we held them to 2 runs. It just happened for me today.”
David Robertson pitched a perfect ninth inning to pick up his 11th save, but he felt dizzy after throwing his first pitch to Kendrys Morales, the Royals’ final hitter.
After being checked out by trainer Herm Schneider, Robertson stayed in the game and struck out Morales.
“I threw a pitch and for some reason I got a little dizzy,” Robertson said. “I just couldn’t quite focus on the plate, so I needed to take a minute or so to get my head back.
“I think I just jerked my head a little too much or something and just kind of got dizzy for a second and needed to catch my breath and make sure I was going to be able to throw it in the strike zone.”