Off-spinner Simon Harmer struck in the last over before tea as Bangladesh started their reply to South Africa's first innings total of 367 on the second day of the first Test at Kingsmead on Friday.
Bangladesh were 25 for one at tea.
Mahmudul Hasan Joy and Shadman Islam looked comfortable against South African opening bowlers Duanne Olivier and Lizaad Williams.
Harmer, playing in his first Test since November 2015, was brought into the attack in the ninth over and bowled Shadman for nine with the third ball of his second over.
The left-handed Shadman went back on his stumps and was beaten by a ball which hurried through straight.
Temba Bavuma top-scored for South Africa with 93, while fast bowler Khaled Ahmed took four for 92 for Bangladesh. Khaled had taken only one wicket - that of Pakistan captain Babar Azamn - in his previous three Test matches.
Bavuma's long wait for a second Test century continued. He made 102 not out against England in Cape Town in January 2016 in his seventh Test match. He is currently making his 50th appearance and has scored 18 half-centuries without adding another three-figure score.
Bavuma batted through a tricky period for South Africa on Friday as Bangladesh bowled well with the second new ball on a pitch which appeared to have quickened up since the first day.
Khaled made a double strike, dismissing Kyle Verreynne and Wiaan Mulder off successive deliveries.
South Africa were 245 for six, having added only 12 runs to their overnight total, but Bavuma and Keshav Maharaj added 53 runs for the seventh wicket as Bavuma moved closer to his hundred.
But Bavuma attempted a cut against off-spinner Mehidy Hasan. The ball spun back sharply and deflected off Bavuma's pad into the stumps. He had faced 190 balls and hit 12 fours.
Maharaj was bowled by Ebadot Hossain off the next ball but Harmer hit 38 not out as the last two wickets yielded 67 runs.