Bruce Chen (2-4), the sixth pitcher for the AL Central-leading Royals, gave up five hits and walked two in the 10th.
Eduardo Nunez singled home the go-ahead run and Brian Dozier added a two-run double. Kurt Suzuki capped the burst with an RBI double, his third hit of the game and second double.
Schafer had three hits and extended his hitting streak to eight games.
Anthony Swarzak (3-1) picked up the victory.