Singer (7-4) allowed only four hits, including a fifth-inning solo homer to Daulton Varsho, in seven innings. He is 4-1 over his past 10 starts, posting a 2.14 ERA in that span.
Gallen had his fifth scoreless outing in the past seven starts, with an 0.80 ERA in that time.
Kansas City tagged relievers Noe Ramirez (4-4) and Joe Mantiply for five runs in the seventh.
After Nicky Lopez made it 1-all with a suicide squeeze bunt, MJ Melendez hit a go-ahead single. Witt hit his team-leading 18th homer, a three-run drive to deep left-center field.
Witt has extra base hits in five of his last six games. He ranks first or second among major league rookies in extra-base hits (45), homers, doubles (21), triples (6), RBI (64), runs (63), and steals (24).
Royals RHP Josh Staumont (right biceps tendinitis) and RHP Zack Greinke (right forearm tightness) were placed on the 15-day injured list. RHP Collin Snider and LHP Anthony Misiewicz were recalled from Triple-A Omaha.