Chicago's lead over Detroit in the American League Central remained at two games after Detroit also lost earlier in the day. Detroit will begin a weekend series with Minnesota Friday and Chicago will travel to the Los Angeles Angels.
Kansas City overcame an early three-run deficit and tied it in the sixth on an RBI double by Billy Butler.
Butler also opened the ninth with a single off Jesse Crain (2-3) and Dyson came on as a pinch runner.
Salvador Perez flew out to right and Mike Moustakas struck out and while they were batting Dyson drew seven pickoff attempts by Crain.
With Jeff Francoeur at the plate, however, Dyson finally stole second base. Francoeur was then walked intentionally, bringing up Hosmer.
Hosmer lined an 0-2 pitch down the left-field line for the game-winning hit.
Greg Holland (7-4) worked the top of the ninth to get the victory. Kansas City has defeated Chicago nine times in their last 11 meetings.