CHICAGO -- Since returning from the disabled list last month, Nicky Delmonico had been searching for rhythm and consistency at the plate.
He found both Friday night.
Delmonico went 2 for 4 and had a career-high five RBI. Before Friday, he was 8 for 44 (.182) with 17 strikeouts in his last 14 games.
"I felt good today," said Delmonico, who spent two months on the DL with a broken hand. "I feel like I'm starting to get my rhythm back and not trying to do too much."
Tim Anderson went 3 for 3 with a walk and two stolen bases for Chicago.
Abreu's homer was his 22nd. The White Sox have homered in a season-high nine straight games, totaling 13 during that stretch.
James Shields (5-14) allowed three runs on six hits in seven innings to snap a five-start winless streak. He last win was on July 13, also against Kansas City.
Whit Merrifield went 2 for 2 with two walks and an RBI for the Royals.
Yoan Moncada, who was inserted back into the leadoff spot on Friday, started the rally in the seventh with a walk. Yolmer Sanchez then followed with a slow grounder to shortstop that Alcides Escobar booted for an error -- snapping the Royals' 16-game errorless streak.
"You can't throw belt-high fastballs down the middle to Abreu," Royals manager Ned Yost said. "He can hammer it. Jason's been throwing the ball good for us. Tonight he was just center-cutting a lot of fastballs."
Chicago wasn't through. After Matt Davidson struck out for the first out, Leury Garcia singled and stole second. After Omar Narvaez walked, Anderson singled to drive in Garcia and make it 6-3. Delmonico then followed with his three-run blast into the right-field bleachers.
"I was just looking for a pitch to jump on early and he grooved me a fastball," Delmonico said.
Chicago pulled within 3-2 with a run in the fourth and sixth.
White Sox RF Avisail Garcia was pulled after the second for not running out a short pop fly to right field on the last out of the first. Garcia played the field in the second and then was replaced.
"I didn't think he gave me an effort on the Texas leaguer," manager Rick Renteria said.
Garcia, who's dealing with a nagging knee injury, said he felt a click in his knee and that's why he didn't run hard.
White Sox C Welington Castillo began a rehab assignment with Triple-A Charlotte on Friday, going 1 for 4 as the DH in a 4-3, 10-inning loss to Louisville. Castillo, 31, was suspended for 80 games on May 24 for violating MLB's drug policy. He is eligible to return to the majors on Thursday when Chicago begins a four-game series at Detroit.
Renteria said Castillo will resume his role as the No. 1 catcher if he's physically up to the task.
Royals: OF Brian Goodwin (left groin strain) continued his rehab assignment with Triple-A Omaha as the DH on Friday. After a day off on Saturday, the plan is for Goodwin to play five innings in the outfield on Sunday.
White Sox: Leury Garcia (strained left hamstring) was activated from the 10-day DL before the game. He entered in the third inning, replacing Avisail Garcia. OF Ryan LaMarre was optioned to Triple-A Charlotte following Wednesday's game at Detroit, opening the roster spot.
Chicago RHP Dylan Covey (4-9, 6.06 ERA) looks to snap out of an extended rough stretch on Saturday night in the second game of the series. Covey is 1-8 with an 8.94 ERA in his last 10 starts. RHP Brad Keller (5-5, 3.40) pitches for the Royals after allowing just one run in seven innings against Toronto in last start on Monday.
More AP MLB: https://apnews.com/tag/MLB and https://twitter.com/AP-Sports
Teixeira: Trout extension 'doesn't set a new bar' in MLB
Mark Teixeira explains what Mike Trout's $430 million extension means for the Angels and MLB player contracts going forward.
Projecting saves leaders for every NL team
Eric Karabell projects which player will lead every National League team in saves to help fantasy managers draft closers this season.
Sports world reacts to Mike Trout's $430 million deal
From J.J. Watt angling for a similar contract to a fellow MLB player asking for a loan, Trout's huge payday has social media buzzing.
Stephen A: 'You don't lose a Mike Trout'
Stephen A. Smith asserts Mike Trout is worth his $430 million contract for the Angels.
Buster's Buzz: Early MLB schedule easy on Yanks, fuels Nats-Mets rivalry
There are always quirks as a new baseball season begins. Here's how the opening slate affects top contenders.
Is Mike Trout worth $430 million?
The Dan Le Batard crew debates if outfielder Mike Trout is worth the 12-year, $430 million deal he is reportedly finalizing with the Los Angeles Angels.