CHICAGO (AP) 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 RBIs. 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.
Right-hander Jason Adam came on to replace Tim Hill (1-4) and Abreu hit the first pitch into the left-center bleachers to give the White Sox a 5-3 lead.
''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.
Kansas City took a 3-0 lead in the third on run-scoring singles by Merrifield and Salvador Perez, and a sacrifice fly by Alex Gordon.
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
Copyright 2018 by AP. Any commercial use or distribution without the express written consent of AP is strictly prohibited.