CHICAGO -- Lorenzo Cain's first two at-bats Friday night weren't pretty.
The Royals' center fielder flailed at White Sox starter Francisco Liriano's slider in the first inning and did the same at the lefty's changeup in the third.
"He was definitely ... man, eating me alive with that changeup," Cain said. "I couldn't touch it, couldn't see it, could do anything with it."
Liriano left a slider over the middle of the plate in the fifth inning, however, and Cain certainly did something with that one, blasting a solo home run.
"The night definitely started off rough for me," Cain said with a laugh. "But I guess it's not where you start; it's where you finish."
Cain and the Royals finished impressively, as the young center fielder hit a game-winning two-run homer in the top of the ninth to give Kansas City a 7-5 victory over the White Sox at U.S. Cellular Field.
Cain's homer, on a 1-1 slider from White Sox closer Addison Reed, was his seventh and completed his first career multi-homer game.
"I made a couple bad pitches," said Reed, who fell to 3-2. "The pitch to Cain was a hanging slider and he hit it over the wall. Things didn't go the way I wanted them to."
Friday's victory was the Royals' sixth straight against the White Sox, who saw their American League Central-lead over Detroit shrink to a half-game. The Royals are 9-4 against the White Sox this season.
"I guess we're going to try to shake things up a bit," Cain said of impacting the division race. "We're a team that's going to fight till the end. ... Tigers, Chicago, either/or. We're going to try to go at them and beat them each and every night."
That mantra was clear for both teams Friday, as the White Sox and Royals continued to trade leads in a long-ball bonanza.
Cain's ninth-inning heroics came after White Sox shortstop Alexei Ramirez tied the game with a two-run homer in the bottom of the sixth. Ramirez's homer erased Jeff Francoeur's run-scoring single and a sacrifice fly by Mike Moustakas in the top of the inning.
The Royals escaped danger in the bottom of the eighth after Aaron Crow allowed the first two batters to reach. Kelvin Herrera (2-2) entered and, after a sacrifice bunt put runners at second and third with one out, blew a 100-mph fastball by Gordon Beckham. He then got Jose Lopez to pop out to third after intentionally walking Alejandro De Aza to load the bases.
"Herrera was phenomenal," Royals manager Ned Yost said. "He deserved [the win], doing what he did coming into that situation and snuffing it out. He did a tremendous job."
Royals catcher Salvador Perez went 2-for-3 with a two-run homer in the second that erased a first-inning RBI single by Chicago's Paul Konerko.
Perez also extended his career-long hitting streak to 12 games, while left fielder Alex Gordon recorded his career-high 46th double in the third.
White Sox catcher A.J. Pierzynski and left fielder Dewayne Wise hit solo homers in the fourth and fifth, respectively.
Royals right-hander Luis Mendoza allowed all five of Chicago's runs on 10 hits and four walks. He lasted only 5 1/3 innings while taking his third consecutive no-decision.
"Disappointed about my teammates giving me huge run support and I should've done a better job, but they kept scoring runs and the bullpen as always is very good," said Mendoza, who matched a career high by allowing three home runs.
Four Royals relievers combined to toss four scoreless innings, while Greg Holland worked the ninth to earn his 12th straight save.
Kansas City also flashed the leather and displayed heads-up baseball in the third when Wise hit a leadoff triple. Wise didn't attempt to score on a flyout to Francoeur in right and then Alex Rios popped up down the right-field line. Second baseman Johnny Giavotella caught it, spun around and easily nabbed Wise at the plate to end the inning.
"Very heads-up," Yost said. "Making a good throw to Sal saved us a run, too, that we didn't have to get later in the game."
With contributions from youngsters like Cain and Perez, it isn't crazy to think these Royals could be in a position similar to the White Sox this time next year, playing for a postseason berth instead of spoiling it for others.
Cain said playing well against the White Sox and Tigers -- two teams Kansas City has beaten nine straight times -- gives the Royals confidence.
"We've got a very competitive group and I feel like we had a lot of injuries this year to start the season, which hurt us a lot," Cain said. "But, at the end of the day, we feel like we can play with these guys and that's the most important part, being confident in yourself and allowing yourself to be confident that we can play top opponents."