Kansas City trailed 3-2 in the sixth when Matt Duffy reached on an error by Chicago first baseman Patrick Wisdom. Witt followed with a fly ball against Jameson Taillon (7-8), which barely cleared the left-center field bleacher basket, to put the Royals ahead.
With two hits Friday, Witt is batting .420 (34-of-81) with eight homers and 27 RBIs in his last 19 games for the Royals, who snapped a three-game skid with just their ninth win in the last 39 road contests.
Kansas City's Cole Ragans (4-4) allowed all the Cubs' runs in the fourth. He yielded eight hits with two walks and struck out nine over six innings.
On his way to earning his second save, Carlos Hernandez allowed a walk and hit in the ninth, but Nico Hoerner (three hits) was thrown out by right fielder Drew Waters trying for a double with one out.
Only two of the four runs Taillon allowed over six innings were earned. He gave up six hits and struck out three without a walk.
Hoerner and Jeimer Candelario each had an RBI single for Chicago, which stranded 10 men and fanned 13 times while losing for the fifth time in nine games amid its chase for a postseason berth.
After the Cubs left three runners on without scoring over the first two innings, Kansas City broke through in the third. Waters singled, stole second and scored on ninth-place hitter Kyle Isbel's lined base hit.
The Royals made it 2-0 in the fourth when Witt reached second on a single and third baseman Candelario's throwing error. Witt eventually scored via Salvador Perez's sacrifice fly.
Chicago, though, broke out to take the lead in the fourth. After Yan Gomes doubled and Seiya Suzuki singled, Candelario ripped an RBI single.
Wisdom followed with a single, and Suzuki eventually came home on Christopher Morel's fielder's choice and a throwing error by Duffy, who replaced the injured Maikel Garcia (upper-body discomfort) at third base. Hoerner singled home Wisdom to put the Cubs ahead.
—Field Level Media