Temba Bavuma steadied South Africa with 53 not out against Bangladesh before bad light ended play early with the Proteas 233-4 on the first day of the opening Test on Thursday.
South Africa had controlled the first session and captain Dean Elgar and Sarel Erwee put on a 113-run opening stand before they fell in quick succession after lunch.
Mehidy Hasan Miraz pulled off a brilliant run out of Keegan Petersen in Bangladesh's fightback in the middle of the day.
But Bavuma buckled down after tea for his 18th test half-century. He was supported by Kyle Verreynne (27 not out) and their unbroken 53-run stand took South Africa to stumps, although only 76.5 overs had been bowled on the opening day when the umpires decided the light wasn't good enough to keep playing in Durban.
Bangladesh is aiming to follow up on its groundbreaking victory in the one-day international series last week, which was the first time it had won a series of any kind in South Africa. The tourists' chances might also be aided by the fact that South Africa is missing a number of its top players to the Indian Premier League.
The Proteas are without batsmen Aiden Markram and Rassie van der Dussen, pace bowlers Kagiso Rabada, Lungi Ngidi and Marco Jansen, and allrounder Dwaine Pretorius, who all opted to play in the IPL instead of the two-test series against Bangladesh.
South Africa was solid at the start to go to lunch on 95-0 as Bangladesh's bowlers initially struggled to find their range after putting the home team in to bat. Elgar led the way after clipping the first delivery of the day for four to set the tone for that first session. He eventually hit 11 fours in his 67 off 101 balls.
Bangladesh gained some ground back with those three strikes after lunch. Miraz was central to that effort by bowling Erwee for 41 and then producing an excellent piece of fielding to get rid of Petersen for 19. Miraz made a diving stop with one hand and then released a throw almost in the same movement to run Petersen out with a direct hit.
Ryan Rickelton made 21 on his test debut but mishit a pull shot off Ebadot Hossain after looking good with four boundaries. He hit a reverse sweep for four for his first runs in test cricket.
Bavuma took control but will be the subject of yet more focus on the second day having converted just one of his half-centuries into a century in eight years of playing Tests.
While poor light often ends play early in the east coast city of Durban, the day also had a strange start when play was delayed for more than 30 minutes because of a problem with one of the sight screens.