Tamim Iqbal and Mahmudullah made half-centuries as Bangladesh scored 179-4, trailing South Africa by 69 runs on day two of the first test on Wednesday.
Torrential rain wiped out the last 36 scheduled overs.
Captain Mushfiqur Rahim was batting on 16, with Shakib Al Hasan on 1.
Mahmdullah and Tamim Iqbal steadied the innings with an 89-run partnership from 55-2 in the first session.
Tamim, on 57, was the only wicket to fall in the middle session, and Mahmudullah was removed for 67 just four balls before the rain stopped the game for the first time. His dismissal kept the game in the balance.
"It is 60-40 in their side," South Africa bowling coach Charl Langeveldt said. "If they get a 100-run lead against us, we will be struggling. At the moment, it is fairly even."
Play resumed for only one ball, which Shakib used to get off the mark.
Dean Elgar, Stiaan Van Zyl, Vernon Philander, and Simon Harmer shared the wickets.
Bangladesh, which has lost all eight previous tests to South Africa, was watchful throughout the day in reply to South Africa's 248. But just when it looked like it might establish dominance, Tamim, then Mahudullah, were dismissed.
"The first session of the third day will be important to determine if we could earn a sizeable lead, and the way pitch behaved, I think it could break, and we have the spinners to exploit it," Mahmudullah said.
"Despite bowling them out for 248, we knew our job wouldn't be so easy since they got a world-class bowling attack. They were not giving any space, and a chance to play the shots. We knew we have to watchful."
Imrul Kayes was first out for 26, stumped when taking a casual approach to an innocuous ball from medium-pacer Van Zyl.
His opening stand with Tamim of 46 tied for Bangladesh's second highest against South Africa.
Also Read: Bangladesh(Ban) Vs South Africa(Sa) 1st Test Day 1: Proteas Stunned, Bowled Out For 248
Offspinner Harmer then knocked out Mominul Haque's off stump with a quicker delivery, to leave Haque out for 6 and Bangladesh 55-2.
Tamim and Mahmudullah steadied the innings and grew in confidence to raise their first fifties against South Africa, until Elgar, an occasional left-arm spinner, broke their stand by bowling Tamim, who missed an attempted sweep and lost his leg stump.
Tamim's patience during his 129-ball stay for his 18th test fifty, was key in dealing with the South African trio of fast bowlers - Dale Steyn, Philander and Morne Morkel - who toiled in vain to make a breakthrough. They finished the day having bowled 36 overs for only one wicket, Mahmudullah's, taken by Philander.
"In his (Steyn) career, there will be a lot more days like this as well," Langeveldt said. "He is a guy who bounces back. He always comes up with the goods when his back is against the wall.
"I am very happy with them (Steyn and Philander). They put in the hard yards. They were a bit unlucky, beating the bat a lot, especially with the new ball. It went past the bat of Tamim. It was one of those days."
Mahmudullah tried to flick a fuller-length delivery but was caught plumb on his front knee. He'd clobbered 10 boundaries in 138 balls.