South Africa needed a late flurry of hitting to post a challenging total in the first one-day international against Bangladesh at Senwes Park on Friday.
South Africa scored 66 runs in the last five overs as they made 283 for eight after winning the toss and batting on a slow pitch.
Johann Louw, batting at number nine, hit the first two balls he faced for six and raced to 23 off seven balls. Skipper Johan Botha made 23 off 15 deliveries, while Albie Morkel finished on 32 not out when he hit the last ball of the innings from Syed Rasel for six.
Until then, the South African batsmen were kept in check by tigerish fielding and accurate slow bowling, with wickets falling whenever profitable partnerships seemed to be developing. They delayed taking the final power play until the last five overs.
Jacques Kallis made 50 and three other top order batsmen reached 30 without going on to play a major innings.
The most fluent batsman was opener Hashim Amla, who made 35 off 34 balls before being run out after a mid-pitch collision with bowler Mashrafe Mortaza.
Amla was sent back by opening partner Justin Ontong after the ball squirted out on the leg side off Ontong's pad. As he turned, Amla collided with Mortaza, who was going for the ball.
Both men fell and fielder Naeem Islam had an easy task in completing the run-out.
Umpire Nigel Llong appeared to ask Bangladesh captain Mohammad Ashraful whether he wanted an appeal against Amla to stand but there was no indication that the tourists wanted to recall the batsman, who might not have made his ground even if he had not fallen.
Islam, bowling off-spin, took three for 60 but the most impressive bowler was slow left-armer Shakib al Hasan, who had figures of two for 21 after eight overs before conceding another 27 in his last two overs during the final power play.
South Africa were without veteran opening batsman Herschelle Gibbs, who was sent home for breaking a team curfew the night before a Twenty20 international between the two teams in Johannesburg Wednesday.