Captain Dean Elgar top scored with 70 as South Africa were held in check to reach 278 for five at the close of play on the first day of the second and final Test against Bangladesh at St George's Park on Friday.
Kyle Verreynne (10 not out) and Wiaan Mulder, who has yet to score, will resume on the second morning as South Africa look to post a big first innings total on a good wicket having won the toss and elected to bat.
Temba Bavuma made 67 and Keegan Petersen 64 as all the batsmen made starts, but none could go on to record three figures.
Bangladesh need to win to level the series and toiled hard with the ball. After being a little loose with their line in the morning session, they tightened up in the afternoon and were able to rein in the scoring rate.
The pick of their bowlers was left-arm spinner Taijul Islam (3-77), who came into the side for injured seamer Taskin Ahmed.
After fast bowler Khaled Ahmed (2-59) had South Africa opener Sarel Erwee (24) caught by wicketkeeper Litton Das, Taijul claimed the next three wickets.
He induced an edge from Elgar that was grabbed by Litton, the home captain making his third half-century of the series.
Before the start of the match, Elgar had said South Africa's batsmen needed to score into three figures, which they failed to do in the first test despite winning it by 220 runs.
It seemed that target has once again fallen by the wayside.
Petersen was leg before wicket after an initial not out decision was reviewed, while Ryan Rickelton (42) tried a reverse sweep and was caught at slip by Yasir Ali after the ball flicked his glove.
Bangladesh delayed taking the new ball when it was available as they persevered with spin, but when they did, Khaled removed the in-form Bavuma, superbly caught diving low at slip by Najmul Hossain Shanto.
It is honours even after the opening day’s play. South Africa had the chance to take the game away from the tourists, who kept on taking wickets just as the hosts were building momentum.