Bangladesh slumped on the opening day of the first cricket test against South Africa reaching 60-6 at lunch on Monday.
Fast bowlers Wiaan Mulder (3-22) and Kagiso Rabada (2-16) sliced through the Bangladesh batting order after Najmul Hossain Shanto won the toss and opted to bat first.
Mulder took a wicket in each of his first three overs to put Bangladesh in early trouble.
The rot began with the dismissal of Shadman Islam who played a needless shot against a delivery that moved away to edge to second slip for a duck — no runs scored.
Mominul Haque was caught behind, while Shanto flicked straight to short mid-off, leaving Bangladesh at precarious 21-3 in the sixth over.
Rabada then got in to act, rattling the stumps of veteran Mushfiqur Rahim (11) for his 300th wicket in test cricket. In doing so, he became the sixth South African bowler to achieve the feat.
The situation went from bad to worse for the hosts as Rabada got the better of Liton Das, caught at gully for one.
On the stroke of lunch, left-arm spinner Keshav Maharaj trapped Mehidy Hasan leg-before wicket for 13.
Opener Mahmudul Hasan, one of the three changes of Bangladesh from the previous test, was the only batter to show resistance to remain not out on 16 off 86 balls.
Aiden Markram is leading South Africa in the opening test of the two-match series with Temba Bavuma absent through injury. The Proteas are aiming to end a 10-year drought on the sub-continent after failing to win any of its past 13 tests there.
On the positive side, South Africa has never lost a test against Bangladesh, winning 12 of 14 matches. The two test matches in their last tour of Bangladesh in 2015 were drawn, largely due to inclement weather.