The home side will resume the fourth day on 54 for two after dismissing Bangladesh for 320 shortly after tea.
Dean Elgar and Aiden Markram, who scored 296 runs between them in the first innings, were out early in the second but the home side were still firmly in command with Hashim Amla (17) and Temba Bamuva on three at the crease at stumps.
The pair helped Bangladesh to avoid the follow-up but soon after reaching the target the visitors collapsed with their last five wickets going down for a paltry 28 runs.
Keshav Maharaj returned the best bowling figures of 3-92 with two wickets each for South African seamers Kagiso Rabada and Morkel on a flat track that has been batsman-friendly in a high-scoring game.
South Africa scored 496 for three declared in their first innings.