Hendricks (10-10) struck out five and walked one. He has given up two runs in his last 14 innings.
Tucker Barnhart had two hits for the last-place Reds, who have dropped five straight and been shut out nine times.
The Cubs have homered in a season-high 11 straight games and won five straight.
Hendricks was lifted for a pinch-hitter after throwing 98 pitches. Randy Rosario worked the final two innings to complete the three-hitter.
A balk by Robert Stephenson scored Anthony Rizzo in the seventh inning before Schwarber smacked a two-run home run to right field, his 24th of the season.
Bote hit a two-run homer over the left-field bleachers for a 5-0 lead in the third inning. Five of his six home runs this season have given the Cubs the lead or tied a game. Bote’s previous homer was a walk-off against the Reds in the 10th inning on Friday.
The Cubs scored three unearned runs in the first. Daniel Murphy hit an infield single, was safe at second a throwing error and scored on Willson Contreras’ groundout. Heyward tripled to bring in another run when center fielder Billy Hamilton fell trying to catch his line drive. Heyward then scored on Bote’s single.
Heyward’s single drove in another run in the fifth inning. He was 0 for 14 in his previous three games.
Homer Bailey (1-12) allowed six runs — three earned — and eight hits in five innings to remain winless since May 12. The Reds have lost 17 of his 18 starts.