Mahmudul Hasan Joy has scored a tremendous maiden Test century, compiling 137 and nearly carrying his bat as his Bangladesh side were bowled out for 298 by South Africa.
But the home side, following their first innings of 367, still held a clear advantage after the third day of the first Test.
They took their lead to 75 by stumps as they reached 0-6 in their second innings before light and then rain forced an early stoppage on Saturday.
Bangladesh had been 4-98 overnight but slumped to 5-101 in the third over of the day when nightwatchman Taskin Ahmed fell for one.
But Mahmudul went on to celebrate his first Test century in the afternoon session, and eventually hit 15 fours and two sixes before he was the last man out.
He was pivotal to Bangladesh’s score, sharing an 82-run stand with Litton Das (41) for the sixth wicket and then a partnership of 51 with Mehidy Hasan Miraz (29) for the eighth wicket.
Mahmudul cleverly shepherded the tailenders and 197 of Bangladesh’s runs came from the last five wickets.
Debutant Lizaad Williams collected his first Test wickets to finish with 3-54 for South Africa.
His haul included the wicket of Mahmudul, who was finally beaten when he edged to Simon Harmer at slip to end the Bangladesh innings.
South Africa openers Dean Elgar (3 not out) and Sarel Erwee (3 not out) extended that lead by six runs.