Kagiso Rabada became the youngest South African to 100 Test wickets as the Proteas demolished Bangladesh by an innings and 254 runs to wrap up a commanding 2-0 series triumph.
A day after claiming a fine 5-33 that saw Bangladesh collapse to 147 all out and the follow-on enforced after the hosts' 573-4 declared, Rabada (5-30) repeated the trick with another expert display as the Proteas secured victory inside three days.
It was another poor showing from the tourists, who were outclassed in every department in Bloemfontein, Mahmudullah (43) proving their highest scorer in a second innings in which they tallied just 172 and showed minimal resolve.
For Rabada, though, there was plenty to celebrate with a landmark Test scalp - thanks in part to great work from Dean Elgar - and 10 wickets in the match to cap a masterful performance.
South Africa, who won the opening of the two-match series by 333 runs, and Bangladesh will now switch focus to the three ODIs - the first of which takes place in Kimberley next Sunday.
-- Cricket South Africa (@OfficialCSA) October 8, 2017
Bangladesh, who started the day trailing by 419 runs, were left sinking without a trace by lunch.
Rabada enjoyed a brilliant morning spell, but was helped by a poor prod from Soumya Sarkar (3) that Faf du Plessis took with a diving catch at second slip.
Mominul Haque (11) then holed out to deep square leg off a slow one from Rabada before Imrul Kayes - who's entertaining 53-ball 32 included five fours and a six - edged behind off Duanne Olivier (1-39).
Bangladesh needed somebody to steady the ship, but captain Mushfiqur Rahim (26) fell on the stroke of lunch when a misjudgment saw him trapped lbw leaving Wayne Parnell (1-31).
Mahmudullah and Liton Das (18) put on 43 after lunch, but the latter's decision to play no stroke to one from Andile Phehlukwayo (3-36) saw his off stump uprooted.
Rabada's moment to celebrate arrived not long after as Mahmudullah's back-foot drive was brilliantly held by Elgar, who dived to his left at gully.
The tail was effortlessly swept up, with Rabada taking out Taijul Islam's leg stump and leaving Rubel Hossain flummoxed with a yorker before Phehlukwayo castled Mustafizur Rahman to put the bookend on a sublime showing.