Taijul Islam picked up a six-wicket haul for Bangladesh, but South Africa were simply too good in every department as the visitors find themselves 314 runs behind and five wickets down at the end of day two.
Islam doubled his tally of three wickets from yesterday as he picked up Wiaan Mulder, Keshav Maharaj and Simon Harmer to finish with figures of 6/135 in 50 overs.
He also picked up his 150th test wicket, becoming only the second Bangladeshi player to reach that milestone.
None of those three wickets today fell cheaply, though. Mulder and Harmer both played good cameos while Maharaj scored a career-best 84 off 95 balls, with nine fours and three sixes, as he took the game away from the visitors.
Bangladesh faced the final session of the day with the bat as the Proteas bowlers came out fired up.
Duane Olivier picked up opener Mahmudul Hasan Joy in the first over with Sarel Erwee taking the catch.
Tamim Iqbal scored a good 47 off 57 balls before being bowled lbw by Mulder, who took another two wickets in quick succession before Olivier removed Liton Das to leave Bangladesh at 139/5 at the close of play.
Image source: @OfficialCSA