Bangladesh were bowled out for a meagre 153 and forced to follow-on on the second day of the first Test against South Africa in Bloemfontein on Thursday.
Bangladesh, trailing by 288 runs on first innings, reached the close on 20 for one in their second innings as fast bowler Dale Steyn celebrated another wicket to go with the two he claimed in the first innings.
South Africa, despite losing their last eight wickets for 114 runs, declared their first innings on 441 for nine, and finished the day still 268 runs ahead.
South Africa's fast bowlers proved far too much to handle for the woeful Bangladesh batsmen on a pitch with pace and bounce, and Steyn (2-36) and Makhaya Ntini (3-20) exposed the top-order as the visitors crashed to 88 for eight.
Wicketkeeper Mushfiqur Rahim (48) and tailender Shahadat Hossain (23) then hit out in a ninth-wicket stand of 60 off 64 balls before Jacques Kallis (2-10) wrapped up the innings.
Teenager Tamim Iqbal survived the five overs through to the close to finish on five not out, in the company of Zunaed Siddique on seven. Steyn bowled Imrul Kayes, off the bat, for four.
Earlier, Graeme Smith (157) and Hashim Amla (112) were the stars with the bat for South Africa in a second-wicket stand of 225, before left-arm spinner Shakib Al Hasan gained access to the middle and lower-order and took five for 130.
Bangladesh resumed their first innings after tea on 33 for three and the captain, Mohammad Ashraful (1), tried an ambitious drive and edged the fourth ball after the break to gully, where Neil McKenzie took a sharp catch off Steyn.
The middle-order briefly fought back as Mehrab Hossain scored 12 and Shakib made 14, but Ntini dismissed both and then claimed the wicket of Naeem Islam for eight, before the late rally by Rahim and Shahadat.
Left-handed batsman Ashwell Prince had played a lone hand in keeping South Africa's sinking middle and lower-order intact as he scored 59 not out as Shakib ripped through in an impressive spell of five for 35 in 13 overs either side of lunch.
More from rediff