Junaid Siddique and Mushfiqur Rahim hit half-centuries to lead a spirited Bangladesh batting effort on the first day of the second and final Test against South Africa at Centurion Park Wednesday.
Bangladesh were bowled out for 250, with Siddique making 67 and Rahim 65.
South Africa were 20 for one at the close, with Neil McKenzie dismissed for nought in the third over of the innings.
Makhaya Ntini and Morne Morkel took four wickets each but South Africa's all-pace attack met stiffer resistance than they did in the first Test in Bloemfontein, where South Africa won by an innings and 129 runs.
The bowlers were not helped by some uncharacteristically sloppy South African fielding, with both Siddique and Rahim surviving two dropped catches.
The tourists showed greater resolve from the moment captain Mohammad Ashraful won the toss and decided to bat, in a reversal of his team's policy in the first Test.
It took South Africa an hour to separate opening batsmen Tamim Iqbal and Imrul Kayes, who batted with patience and discipline.
There was another useful stand between Iqbal and Siddique but Bangladesh seemed to be heading for familiar territory when three wickets fell for 17 runs on either side of lunch to reduce them to 71 for four.
But Siddique and new cap Raqibul Hasan put on 51 for the fifth wicket before Shakib Al Hasan and Siddique added 37 for the sixth wicket.
The left-handed Siddique was seventh man out after facing 144 balls and hitting 11 boundaries. He played some confident off-side strokes after surviving chances on 14 and 19.
Rahim, batting at number eight, had only 16 when he was joined by last man Mahbubul Alam but he then went for his shots in a last wicket stand of 56 in which Alam scored only one run.
The diminutive Rahim hooked and then pulled South Africa's leading fast bowler Dale Steyn for sixes. It was a poor day for Steyn, who took only one wicket and conceded 80 runs in 17 overs.
Ntini was the pick of the South African bowlers, taking four for 32 in 19.2 overs before leaving the field after two balls in a final spell with what appeared to be cramp.
The tall Morkel bowled some ferocious deliveries but struggled to find a consistent rhythm, conceding 12 no-balls as he took four for 73 in 18 overs.
South Africa made a poor start when McKenzie was squared up by a lifting delivery from Mashrafe Mortaza and looped a catch to gully.
New batsman Hashim Amla survived a frenzied appeal for a legside catch by wicketkeeper Rahim off Mortaza's next ball but umpire Ian Gould ruled correctly that the ball had deflected off the batsman's thigh pad.
Scoreboard at close of play on the first day of the second and final Test between South Africa and Bangladesh at Centurion Park here on Wednesday:
Bangladesh, first innings
Falls: 1-25 (Kayes), 2-56 (Iqbal), 3-57 (Ashraful), 4-71 (Mehrab), 5-122 (Raqibul), 6-159 (Shakib), 7-166 (Siddique), 8-186 (Mortaza), 9-194 (Shahadat)