Bangladesh left-arm slow bowler Abdur Razzak took four for 16 as South Africa's batsmen perished in a push for quick runs in a rain-hit Twenty20 international at the Wanderers Stadium here on Wednesday.
South Africa, who were sent in to bat, scored 118 for seven in an innings reduced to 14 overs after two interruptions for lightning and rain.
The home side were well placed at 72 for two after 7.5 overs at the second rain break but with only 37 balls remaining after the reduction of overs they lost five wickets, mainly to reckless shots, in adding only 46 more runs.
AB de Villiers, who was dropped twice, scored 36 off 26 balls for South Africa
It was the opening match of a tour by Bangladesh which includes three one-day internationals and two Test matches.
Only three runs were scored off the first 11 deliveries of the match before Loots Bosman and Herschelle Gibbs went on the attack in an opening stand of 43 before Gibbs was bowled off an inside edge by left-arm seamer Syed Rasel off the first ball of the fifth over.
Gibbs survived a chance to wicketkeeper Mushfiqur Rahim in the first over when he was on one, with Rahim standing up to Rasel. He made 18 off ten balls.
Bosman hit 28 off 18 balls before hitting a high catch to Bangladesh captain Mohammad Ashraful off Razzak.
Bangladesh were without opening bowler and vice-captain Mashrafe Mortaza because of a back injury.
Fast bowler Dale Steyn returned to the South African team after recovering from an illness which kept him out of action since the tour of England which ended in September.
Rory Kleinveldt, an all-rounder from the Cape Cobras franchise, made his international debut for South Africa.