Published: 2017-07-08 12:00:41 BdST
England removed captain Dean Elgar (54) and JP Duminy (15) early in the final session to take control of the match with South Africa at 104 for four but a stand of 99 between Bavuma and Theunis De Bruyn gave the touring side hope.
England captain Joe Root was out for 190 before Moeen Ali (87) and Stuart Broad (57 not out) lifted the hosts to a commanding first-innings total.
Root, resuming on 184 in his first match as skipper, nibbled at a delivery from Morne Morkel and nicked a catch to wicketkeeper Quinton de Kock, but the 26-year-old right-hander received a standing ovation as he walked back to the pavilion.
Moeen was bowled by Kagiso Rabada for 87 and Mark Wood lasted two balls before he was out lbw to the right-arm paceman.
Broad was joined by James Anderson and the pair entertained the crowd royally with a stroke-laden partnership of 45, Broad clubbing two sixes and Anderson one before the latter was caught by De Kock off Morkel for 12.
Broad was left unbeaten on 57 off 47 balls, including eight fours. Morkel was the pick of the South Africa bowlers with figures of 4-115.
Broad had Heino Kuhn, on debut, caught at first slip by Alastair Cook for one shortly after lunch before Elgar and Amla shared an obdurate second-wicket partnership of 72.
Elgar was dismissed soon after tea, caught off bat and pad at short leg by Gary Ballance off Moeen and Broad snared JP Duminy lbw with a full delivery which nipped back into the left-hander.
But Bavuma and De Bruyn showed commendable composure under pressure, defending resolutely and dispatching loose deliveries to the boundary.
De Bruyn, in his second Test, edged Anderson to wicketkeeper Jonny Bairstow for 48 just before the close but Bavuma remained on 48 not out with Rabada on nine.