South Africa fast bowler Kagiso Rabada wreaked havoc on the Bangladesh batting line-up Thursday, reducing them to 48-8 before a mini-fightback to 137-8 at lunch on the third day of the second Test.
Mominul Haque led the resistance to the interval with a gritty 74 not out supported by Taijul Islam, on 18, as the pair put on an unbroken 89 for the ninth wicket in Chattogram.
But the hosts were still trailing South Africa's mammoth first innings of 575-6 declared by 438 runs, needing 239 more to avoid the follow-on.
Bangladesh resumed at 38-4 but Rabada struck in the fourth over with a cracking delivery that captain Najmul Hossain Shanto, on nine, could only edge to wicketkeeper Kyle Verreynne.
Mushfiqur Rahim went without scoring when Dane Paterson induced him to pop up a simple catch to Tony de Zorzi at short leg to leave Bangladesh 47-6.
That soon became 48-8 when Rabada struck twice in one over as Mehidy Hasan Miraz was caught behind and debutant Mahidul Islam Ankon offered no shot to ball nipping back and was trapped lbw for a duck.
The burst gave Rabada his second five-wicket haul of the series, to go with his 6-46 in the first Test victory in Mirpur.
South Africa had three batsmen hit maiden Test centuries in their first innings 575 -- de Zorzi (177), Tristan Stubbs (106) and Wiaan Mulder (105 not out).
South Africa are looking to sweep the two-match series after winning the first Test by seven wickets. Bangladesh have never won a Test against South Africa in 15 attempts.