The South African bowlers strangled the Tigers as Bangladesh lost five wickets for just 66 runs after tea at the Sher-e-Bangla National Cricket Stadium in Mirpur on Thursday.
Nasir Hossain (13) was unbeaten with Bangladesh on 246 for 8 in 88.1 overs at the close of play.
Skipper Mushfiqur Rahim topscored with 65 and joined Mahmudullah (35) in a 94-run stand for the fourth wicket.
Bangladesh were off to poor start after winning the toss as South African pace spearhead Dale Steyn signed up for the 400-wicket club in Tests with Tamim Iqbal’s wicket in the fifth over of the day.
With Tamim’s dismissal, the 32-year old seamer became the second South African to reach the milestone after Shaun Pollock and also the second-fastest to do so along with Richard Hadlee. Sri Lanka’s Muttiah Muralitharan reached the 400-Test wickets fastest.
Tamim (6) survived off Steyn in his previous over, when Dean Elgar dropped a straightforward catch at second slip.
Steyn, however, took the opener out as he threw his bat at another to edge back to Hashim Amla in the first slip.
Mominul Haque (40) and Imrul Kayes (30) then led Bangladesh to recovery.
South African fast bowlers did not give the batsmen room for comfort, bowling tight length and attacking with the short stuff.
Morkel struck Mominul on the side of the helmet in his second over.
But Kayes and Mominul steadied the ship as the teams went for an extended lunch break due to rain.
Jean-Paul Duminy took two wickets in successive overs to remove Mominul and Kayes shortly after the lunch break just after he was brought into the attack.
Mominul edged him back to Dane Vilas for the debutant wicketkeeper’s first international dismissal. Duminy trapped Kayes leg-before in his next over.
After the 69-run stand was broken, Mahmudullah and Mushfiq took control and regained momentum.
The skipper scored his 15th Test half-century off 79 deliveries with seven boundaries.
Mushfiqur Rahim went back edging spinner Dean Elgar back to the wicketkeeper Dane Vilas.
Bangladesh were 154 for 3 in 55 overs when the teams went to tea.
Steyn took his second scalp of the day when Mahmudullah (35) flicked a full delivery straight to Temba Bavuma at short midwicket.
Shakib Al Hasan, in at six, then took the fight to the bowlers with some aggressive batting but Mushfiqur fell soon after when he took a thin edge back to the wicketkeeper (65).
Liton Kumar Das (3) went back in a hurry off Duminy while Morkel took out Shakib who was looking dangerous.
Shakib could not read Morkel’s extra bounce and took an outside edge that flew to Elgar at gully. Steyn took the wicket of Mohammad Shahid (1) when the stumps called for stumps.
Steyn and Duminy bagged three wickets each while Morkel and Elgar chipped with one apiece.