The Royals trailed by two when they got consecutive singles by Mike Moustakas and David Lough off ace White Sox reliever Jesse Crain (2-2) to start the eighth. An error by Crain while trying to field a bunt by Elliot Johnson loaded the bases with nobody out.
Crain struck out George Kottaras and Jarrod Dyson to breathe a bit easier, but he walked Alex Gordon to get Kansas City within a run. Alcides Esocbar then slapped a grounder to shortstop that Alexei Ramirez let through to left field, bringing in the go-ahead runs.
While unearned, they were the first runs Crain had allowed in 30 appearances.
Luke Hochevar (1-1) struck out two in a scoreless innings of relief for Kansas City, while Greg Holland pitched a perfect ninth for his 16th save in 18 chances.