Durban (South Africa) (AFP) - Mahmudul Hasan Joy defied South Africa's bowlers for more than seven hours and kept Bangladesh in touch with the hosts on the third day of the first Test at Kingsmead on Saturday.
Mahmudul became the first Bangladesh batsman to score a Test century against South Africa as he made 137 in a total of 298.
South Africa stretched their first innings lead of 69 by six runs without losing a wicket before bad light stopped play.
Opening batsman Mahmudul, 21, was unruffled in only his third Test match as he calmly picked the right balls to score from.
It took him six hours and 269 balls to reach his hundred and he continued to bat patiently until the eighth wicket fell.
Then he unleashed a flurry of strokes, hitting off-spinner Simon Harmer for a six and a four and a single in one over, then striking four fours in the next over from Wiaan Mulder.
He was last man out, caught at slip off fast bowler Lizaad Williams after an innings lasting 443 minutes.He faced 326 balls and hit 14 fours and two sixes.
Mahmudul shared useful parnerships of 82 with Liton Das (41), 33 with Yasir Ali (22) and 51 with Mehidy Hasan (29) as Bangladesh kept South Africa in the field for most of the day.
It did not seem likely to be a long day for South Africa when nightwatchman Taskin Ahmed was caught at gully off Williams with only three runs added to the overnight total of 98 for four.
But mainly due to Mahmudul another 197 runs were added, leaving minimal time for South Africa to build on their lead before play was brought to an early finish.
Off-spinner Simon Harmer took four for 103 but was unable to add to his wicket haul after taking the first four wickets on Friday.
Williams, earning his first Test cap in the absence of all South Africa's front-line bowlers, who are playing in the Indian Premier League, took three for 54.
Mahmudul gave a sharp chance to Sarel Erwee at short leg off Harmer when he was on 64 in his only blemish before reaching his century.Keegan Petersen could not hold a low edge at slip off Harmer when he had 108.
The previous highest Test score for Bangladesh against South Africa was 77 by current captain Mominul Haque in Potchefstroom in 2017/18.
South Africa twice dropped chances off Liton during the most productive partnership of the innings.Liton survived a straightforward slip chance to Dean Elgar at first slip off Williams when he had 16 and a difficult chance to Mulder at leg slip off Harmer when he had 39.
Although there was no extravagant turn off a slow surface, South Africa's spinners bowled 78 of the 115.5 overs in the innings, with Keshav Maharaj bleeding from his spinning finger while bowling his 37th and final over shortly before tea.