Bellinger homered with a man on in the first and added a solo shot, his 20th of the season, in the third for Chicago. The Cubs won their sixth straight started by Steele (14-3), who allowed six hits without a walk, and struck out seven.
Kansas City's Bobby Witt Jr. had three hits with an RBI but struck out against Adbert Alzolay as the tying run in the ninth. Alzolay picked up his 17th save.
The Royals had 10 hits but went 2-for-15 with runners in scoring position.
The Royals' Brady Singer (8-9) completed just 3 2/3 innings, allowing six runs (four earned) and nine hits. The right-hander was 3-0 with a 2.85 ERA in his previous six starts.
Chicago opened the scoring in the first when Nico Hoerner reached on shortstop Witt Jr.'s fielding error. Hoerner then stole second, after an initial out call was overturned via video challenge, and came home when Bellinger bashed a pitch from Singer into the left-field bleachers.
Kansas City cut into that deficit in the second when Salvador Perez (2-for-3) singled, went to third on Freddy Fermin's double and scored via Matt Duffy's groundout. The Cubs, though, got that run back in the bottom of the second when Jeimer Candelario tripled and scored on Seiya Suzuki's sacrifice fly.
Bellinger's second homer, leading off the third, went nearly to the same spot in the bleachers as his first for a 4-1 Chicago lead. The Cubs added on in the fourth on Ian Happ's RBI single and Bellinger's sacrifice fly.
Witt singled to open the sixth for the Royals and eventually scored on Fermin's groundout. Kansas City got within 6-3 on Witt's RBI single off Julian Merryweather in the seventh and made it a two-run contest via Kyle Isbel's run-scoring double in the eighth.
—Field Level Media