Bloemfontein: Four of South Africa's top five batsmen made centuries as South Africa declared on 573/4 before Rabada ripped through Bangladesh to bowl them out for 147 and forcing follow on on day two of the Second Test.
Hashim Amla and Faf du Plessis completed their centuries for South Africa on the second morning, following on from tons by openers Aiden Markram (143) and Dean Elgar (113) on day one.
Bangladesh was all out in just 42.5 overs in reply and 7/0 in its second innings at stumps.
Liton Das made 70 for Bangladesh in the first innings, the only contribution of any substance.
Bangladesh still trail by 419 runs.
Earlier, Amla was bowled by Subashis Roy for 132 in the afternoon session after sharing a 247-run partnership for the fourth wicket with captain Faf Du Plessis, who was 135 not out. Markram and Elgar opened with a 243-run stand and Bangladesh's bowlers were out of ideas.
Once again, as in the first test, Bangladesh won the toss and made a major error by putting South Africa in to bat. In the first game, South Africa made 496/3 declared in response. The Proteas' batters were even more dominant at Mangaung Oval in Bloemfontein.
South Africa leads the short two-test series 1-0 after a comfortable win in the first match.
Amla went to 100 with a four and from just 113 deliveries, registering a 28th test century to move past Graeme Smith and into second place alone on the all-time list of South Africa century-makers in test cricket. Only Jacques Kallis, with 45, has more hundreds for South Africa than Amla.
Du Plessis followed before lunch, also reaching his century with a four as the boundaries continued to flow for South Africa. In the first four sessions of the test, South Africa made 126-0, 130-1, 172-2 and 102-0. A 90-minute rain delay at the start of day two didn't affect South Africa's dominance.
Of South Africa's top five, only Temba Bavuma missed out, dismissed for 7 on day one.
Top-order batsmen Soumya Sarkar, Mominul Haque, captain Mushfiqur Rahim and Mahmudullah were all out without reaching double figures for Bangladesh in reply.
Quick bowler Kagiso Rabada took 5/33 for South Africa and fellow seamer Duanne Olivier had 3/40.