Bangladesh, following on after trailing by 426 runs on the first innings, were 92 for four at lunch, still 334 runs short of making South Africa bat again.
Kagiso Rabada took the first two wickets and fellow fast bowlers Duanne Olivier and Wayne Parnell took one apiece.
Rabada and Olivier sent down numerous short-pitched deliveries and three batsmen were struck on their batting helmets, including captain Mushfiqur Rahim, who had lengthy treatment on the field after ducking into a bouncer from Olivier with his score on 11 soon after the mid-morning drinks break. He was hit on his helmet near the temple area.
Rahim was stretchered off the field after being hit behind the left ear by a bouncer from New Zealand's Tim Southee in Wellington in January but was released from hospital the same day.
Mominul Haque was hit by a bouncer from Rabada two balls before hooking the same bowler to be caught at deep square leg for 11, while Mahmudullah was hit by Olivier before he had scored. Mahmudullah was unbeaten on 14.
Disclaimer: No Business Standard Journalist was involved in creation of this content