Keshav Maharaj and Simon Harmer bowled South Africa to a crushing 332-run win on the fourth day of the second Test against Bangladesh at St George's Park on Monday.
Bangladesh were bowled out for 80, losing their remaining seven wickets inside an hour.
Left-arm spinner Maharaj took seven for 40 and off-spinner Harmer claimed three for 34, reports AFP.
It was the second successive match in which the two spinners bowled unchanged through the fourth innings. It was also Maharaj's second seven-wicket haul in successive matches after he took seven for 32 in South Africa's 220-run win in the first Test in Durban.
Three wickets fell in the first half-hour in what for Bangladesh was a depressingly similar pattern to the first Test in Durban when they were bowled out for 53 after starting the last day on 11 for three.
Resuming in a near-hopeless position at 27 for three after being set 413 to win, Bangladesh lost their fourth wicket just eight balls into the day's play.
Mushfiqur Rahim went on a big drive against Maharaj and was smartly caught at slip by South African captain Dean Elgar for one.
Bangladesh captain Mominul Haque did not add to his overnight score of five, top-edging an attempted sweep to midwicket.
Yasir Ali slogged the fourth ball he received from Harmer to deep midwicket and Bangladesh were 44 for six, having lost three wickets for 17 runs in 29 balls since the start of play.
Liton Das batted brightly, scoring 27 and sharing a stand of 25 with Mehidy Hasan before leaping down the wicket against Maharaj to be stumped by Kyle Verreynne.
The last three wickets fell in the space of seven balls.
There were two changes in the South African team after Sarel Erwee and Wiaan Mulder tested positive for Covid-19 on Monday morning.
Khaya Zondo and Glenton Stuurman became the first Covid replacements in Test cricket since the International Cricket Council decided in June 2020 to allow substitutes in Test matches for players testing positive for coronavirus.
It was a first Test cap for specialist batsman Zondo, although he was unable to bat because both South African innings had been completed. Stuurman, with one previous cap, was not called on to bowl.