KANSAS CITY, Mo. — Alejandro De Aza drove in Jordan Danks with a sacrifice fly in the ninth inning, sending the Chicago White Sox to a 3-2 victory over the Kansas City Royals on Saturday.
Jesse Crain (2-1) got through a shaky eighth inning for the White Sox, putting a runner on third with one out and then leaving him there. Addison Reed handled a perfect ninth for his 21st save.
Dayan Viciedo led off the ninth with a single off Aaron Crow (3-3), and Jeff Keppinger drew a walk to reach base for the fourth time. Royals manager Ned Yost brought in closer Greg Holland, and he got pinch-hitter Gordon Beckham to fly out to center field.
That allowed Danks, who was pinch-running for Viciedo, to reach third base. De Aza's hard-hit ball to right was just deep enough to allow Danks to slide home ahead of the throw.
Keppinger and Conor Gillaspie also drove in runs for the White Sox, who have taken the first two games in the three-game set after starting 1-6 on their 10-game road trip.
Crain extended his club record with his 29th consecutive scoreless appearance.
Mike Moustakas and Salvador Perez provided the only runs for the slumbering Royals, who have dropped four straight since climbing back to .500.
The Royals struck first when Miguel Tejada, starting at second base for the ninth time in his 16-year career, hit a two-out single in the second inning. The 39-year-old then chugged all the way around on a double by Moustakas to give Kansas City the early lead.
It was the first RBI for Moustakas since May 23.
The White Sox threatened in the third when Keppinger singled and Tyler Flowers walked to start the inning. Alex Rios hit a ball down the right-field line that fell foul by just a couple of feet, and then he struck out looking to keep the White Sox off the scoreboard.
At least until the fourth.
Dunn, who was hitting .186 coming into the game, walked leading off the inning. Paul Konerko followed with a single up the middle, and Gillaspie's slow roller up the middle was enough to drive in Dunn with the tying run.
Wade Davis nearly escaped the inning when he got Viciedo to ground into a double play, but Keppinger delivered a single to right that gave the White Sox a 2-1 lead.
Kansas City was poised for a big sixth inning, tying the game on a single by Perez and putting runners on first and second with one out. But reliever Matt Lindstrom entered the game and got Lorenzo Cain to ground into a double play on his first pitch to end the threat.
White Sox starter Jose Quintana wound up going 5 1-3 innings, while Davis made it through seven innings on the warm afternoon. He also gave up two runs for the Royals.
NOTES: Keppinger started at 2B in place of Beckham and finished 3 for 3. ... The Royals activated OF Jarrod Dyson (right high ankle sprain) from the DL and optioned 2B Chris Getz to Triple-A Omaha. ... RHP Dylan Axelrod goes to the mound for the White Sox in Sunday's series finale. RHP James Shields starts for Kansas City.