KANSAS CITY, Mo. -- The Kansas City Royals rallied twice from multi-run deficits to beat the Chicago White Sox 7-6 at Kauffman Stadium on Sunday.
Trailing 6-4 entering the eighth, the Royals loaded the bases against Jesse Crain (2-2), as Mike Moustakas and David Lough singled and Elliot Johnson bunted, but reached safely on Crain's fielding error.
After Crain struck out George Kottaras and Jarrod Dyson, Alex Gordon walked to force in a run cut the White Sox lead to 6-5. Shortstop Alexei Ramirez then fumbled Alcides Escobar's grounder, allowing Lough and Johnson to score with the tying and go-ahead runs.
Luke Hochevar (1-1) struck out two in a scoreless eighth to get the victory and Greg Holland worked a perfect ninth, fanning two, to collect his 16th save in 18 chances.
Adam Dunn, who entered Sunday's game with just one hit in 15 career at-bats against James Shields, singled to drive in two runs in the first, then hit a two-run homer to center field to give the White Sox a 4-0 lead in the third.
Shields struggled with the strike zone in the first inning, missing with his first six pitches of the game and walking two to load the bases before Dunn ripped a two-run single off Eric Hosmer's glove, scoring Alejandro De Aza and Ramirez for a 2-0 Chicago lead.
Dunn's 20th homer of the year came with one out, bringing in Alex Rios, who was hit by a pitch to start the frame. It was the 426th home run of Dunn's career, moving him into a tie with Billy Williams for 46th place on the all-time list.
Shields left after five innings, allowing four runs on seven hits and three walks, while fanning four. It was the first time in 29 starts that Shields failed to go at least seven innings, dating to July 15 last year when he went just five while pitching for Tampa Bay against Boston.
The Royals got their first run in the third when Jarrod Dyson singled and stole second with one out before Gordon brought him in with a ground ball single to center.
Dylan Axelrod limited the Royals to one run on four hits over the first four innings, and he entered the fifth with a 4-1 advantage.
Kottaras and Dyson led off the fifth inning with home runs to right field. It was the first time this season Kansas City had hit back-to-back homers.
After Billy Butler's two-out ground-ball single to left later in the fifth inning brought in Escobar, who had doubled. Moustakas then singled to right, driving Axelrod from the mound.
Axelrod threw 4 2/3 innings, allowing 10 hits and four runs with two strikeouts for his fourth straight no-decision.
Nate Jones relieved Axelrod, working 1 1/3 scoreless innings, registering his ninth straight scoreless appearance.
Chicago's Gordon Beckham delivered a two-run double to break a 4-4 tie in the seventh inning. After Dayan Viciedo reached on an infield hit with one-out against Tim Collins (2-2), pinch-hitter Jeff Keppinger drew a walk against Kelvin Herrera before Beckham blasted a deep fly to the centerfield warning track, plating pinch-runner Jordan Danks and Keppinger for a 6-4 advantage.
Notes: The White Sox have hit .241 (200-for-830) with 93 runs scored over their last 25 games (3.7 runs per game) while winning just eight of those games against 17 losses. They have scored fewer than five runs in 23 of their last 30 games. ... The Royals have been outscored 109-78 in the first three innings this year, but have outscored opponents 31-14 after the eighth inning. ... With the wins Friday and Saturday at Kansas City, Chicago won back-to-back road games for the first time since winning four consecutive road games May 14-17. ... Despite allowing 11 runs in their last five games, Kansas City's bullpen still ranks third in the majors with a 2.99 ERA (59 earned runs in 181.1 innings), behind Atlanta at 2.84 and Minnesota at 2.89.