CHICAGO -- It took a former White Sox to beat the White Sox and end the Royals' recent misery.
Melky Cabrera, acquired before the Trade Deadline, belted a two-run home run off reliever Aaron Bummer in the eighth inning, and the Royals rallied for a 5-4 win on Saturday, ending a five-game losing streak and snapping the White Sox four-game winning streak.
The Royals remained five games behind first-place Cleveland in the American League Central. They had lost 10 of 12 before Saturday's win.
"It was huge," Royals manager Ned Yost said. "These are the kind of wins that help stop the bleeding. Good to hear [postgame music] again. I have been thinking about this group of guys, but what do you tell them? They're not pressing. They're competing their tails off. All you can tell them is hang in there and keep battling."
"He was trying to get down underneath it a little bit lower than that and it ended up staying up enough," said White Sox manager Rick Renteria, of the culmination of the nine-pitch at-bat between Bummer and Cabrera. "It ended up staying out over the plate. He put a good swing on it. Melky does what sometimes he does -- he drove it out of the ballpark."
Jose Abreu belted two homers, Nos. 20 and 21, for the White Sox, who overcame a 3-0 deficit and went ahead, 4-3, on Leury Garcia's two-run single in the seventh.
White Sox starter James Shields, a former Royal, maneuvered past a rough start and delivered six innings, giving up seven hits and three runs while walking one and striking out eight.
"It was nice to get some swings and misses today, get some strikeouts when I needed them," Shields said. "We're just going to work off of that. It was good."
MOMENTS THAT MATTERED
Game saver: The White Sox nearly tied it in the ninth off Royals closer Kelvin Herrera. With two out, Omar Narvaez walked. Pinch-runner Tyler Saladino stole second. And then Adam Engel shot a ground ball headed for left field. But third baseman Mike Moustakas made a diving stop to his left and made a strong throw to first to end the game.
"It's definitely a bang-bang play," Moustakas said. "I thought he might be early on something so I was ready. And I knew he had speed so I had to get it out fast."
Added Yost, "Great play. Tough play. Game saver."
What stop sign?: The White Sox gifted the Royals three outs with bad baserunning plays. It started in the first when with two out, Avisail Garcia ripped a double into the left-field corner with Abreu on first. Left-fielder Alex Gordon grabbed the ball off the wall and fired to relay man Alcides Escobar. Third base coach Nick Capra put up the stop sign on Abreu, who barrelled home anyway and was thrown out by 10 feet. It was Gordon's 82nd career assist, tops among outfielder since 2010. Yoan Moncada also was caught stealing in the first (and didn't slide), and Garcia was caught in a rundown in the sixth trying to reach second after an infield single.
• Royals' bullpen comes through in the clutch
"It's the only way I know how to play baseball. Working hard, putting myself in the best position I can be to play. Also, if I don't do that, I know that my mom is going to call me and is going to say something to me." -- Abreu
SOUND SMART WITH YOUR FRIENDS
When Abreu went deep with one out in the fourth, he became the first in White Sox history with four consecutive seasons of at least 20 home runs to start his career. Jermaine Dye and Jose Valentin opened the White Sox portion of their careers with five consecutive seasons of at least 20 homers, and Jim Thome, Paul Konerko and Carlos Quentin started their White Sox careers with four consecutive seasons of at least 20 homers. Abreu homered again in the sixth, marking his ninth career multi-homer game.
WALK THIS WAY
Tim Anderson's one-out walk in the seventh represented his first free pass since July 16 against Seattle.
Royals: The Royals finish up the series against the White Sox on Sunday at 1:10 p.m. CT with left-hander Jason Vargas (13-6, 3.40 ERA) taking the mound. Vargas gave up six runs and eight hits over 4 2/3 innings in a 10-3 loss to St. Louis on Tuesday.
White Sox:Derek Holland (6-11, 5.25) gets the call for the final game of this series against the Royals and a six-game homestand for the White Sox. Holland got the victory in his last start on Aug. 8 against the Astros, marking his first win since June 13 against Baltimore.
Watch every out-of-market regular-season game live on MLB.TV.