Keshav Maharaj and Simon Harmer took all 10 Bangladesh second-innings wickets between them as the Proteas won the first Test at Kingsmead by 220 runs.
Bangladesh were bowled out for 53, with Maharaj picking up 7-32 and Harmer 3-21.
The experienced Mushfiqur Rahim was dismissed in the first over of the day, lbw to Maharaj, when he played down the wrong line of a ball which hurried through straight.
Liton Das fell to a soft shot in Maharaj’s next over, flicking a simple catch to Harmer at wide mid-on, and Maharaj made it three wickets in three overs when he bowled Yasir Ali with a ball that spun past the edge of Yasir’s defensive push.
The rest of the batting crumbled with only Najmul Hossain putting up any significant resistance, scoring 26 off 52 balls.
The two spinners bowled unchanged through the innings. They shared the new ball in fading light on Sunday evening and captain Dean Elgar continued with the pair on Monday.