South Africa paceman Dale Steyn took three wickets for four runs to reduce Bangladesh in their second innings, to 54 for five at close of play on the third day of the second Test on Sunday.
Bangladesh, replying to South Africa's record-studded score of 583 for seven declared, were dismissed for 259 and were asked to follow on just after tea.
Steyn removed Zunaed Siddique for a duck and Mohammad Ashraful (4) both the batsmen sending catches to wicketkeeper Mark Boucher. Shakib Al Hasan (2) was caught by Neil Mckenzie at forward short-leg.
Steyn, who took four wickets for 66 runs in the first Bangladesh innings, has bagged 14 wickets from the two tests. On Saturday he reached his 100 Test wickets from only 20 tests.
Tamim Iqbal (9) was caught at mid-on by Steyn off a delivery from Robin Peterson in the second over of the innings. Peterson later removed Shahriar Nafees (31) caught at slip by Jacques Kallis.
QUICK EXIT
After tea Bangladesh had quickly lost the remaining three wickets of their first innings to South Africa fast bowler Makhaya Ntini who became his country's second highest Test wicket-taker.
Nafees made his fourth test half century before being caught by captain Graeme Smith at slip off Steyn for 69 in the fifth over of the afternoon session.
Aftab Ahmed retired hurt on 21 after being hit on the cheek by a ball from Jacques Kallis. He was taken to hospital to treat an injury to his right eye and cheekbone.
"Though there was no fracture of the bone, Aftab will be under observation at the hospital overnight," said Bangladesh Cricket Board spokesman Rabeed Imam.
Steyn and Ntini claimed four wickets apiece, the latter removing Mushfiqur Rahim (15) and Shakib Al Hasan (40), both caught by wicketkeeper Mark Boucher.
Ntini moved passed Allan Donald as South Africa's second highest test wicket taker behind Shaun Pollock, ending the innings on 334 victims. Donald took 330 Test wickets during his career.
Nightwatchman Abdur Razzak contributed 33 runs for Bangladesh before he was caught by Ashwell Prince at point off Robin Peterson for 33.
Smith (232) and Neil McKenzie (226) shared a world record test opening stand of 415 in South Africa's innings.
South Africa lead the two-match series 1-0.