Fast-bowler Dale Steyn became the second South African to take 400 Test wickets as his efforts ensured Bangladesh were kept in check on the opening day of the second Test.
Steyn (3-30) and part-time offspinner JP Duminy (3-27) led the charge, sharing six wickets, as the hosts reached 246-8 at stumps.
Bangladesh made decent progress despite Steyn reaching the 400-wicket milestone, dismissing opener Tamim Iqbal early to leave Bangladesh 12-1. But the Proteas turned the match by claiming five wickets for 92 runs in the last session.
M Muralitharan (SL) -72
RJ Hadlee (NZ) - 80
DW Steyn (SA) - 80
A Kumble (India) - 85
GD McGrath (Aus) - 87
SK Warne (Aus) - 92
Wasim Akram (Pak) - 96
Harbhajan Singh (India) - 96
CEL Ambrose (WI) - 97
SM Pollock (SA) -103
Bangladesh captain Mushfiqur Rahim was the highest scorer with 65. Mominul Haque scored 40 while Shakib al Hasan and Mahmudullah contributed 35 each.
Fresh from a rain-hit drawn first Test which was largely dominated by the hosts, Bangladesh was unfazed by the early dismissal of Tamim, their most successful batsman at the moment.
Imrul Kayes and Mominul Haque shared 69-run partnership to back the side until Duminy halted the progress with a double strike, dismissing the pair in consecutive two overs.
Mominul was undone by the extra bounce as he attempted a late-cut while Kayes misjudged the length to be hit in front.
Mominul hit six fours in his 87 balls while Kayes sent the ball three times across the boundary rope.
Rahim and Mahmudullah combined for 94 runs to frustrate the South African bowlers. But the last session proved to be decisive for the visitors, whose fast bowlers found the reverse swing in the dry surface to unsettle the Bangladeshi batsmen.
Bangladesh 246-8 (Rahim 65, Duminy 3-27)
Source: Associated Press