Fast bowler Dale Steyn helped steer South Africa to victory by 61 runs in the first one-day international against Bangladesh on Friday.
South Africa's stop-start batting saw them reach 283 for eight but Bangladesh began to fight back when Mohammad Ashraful and Shakib al-Hasan added 92 off 122 balls for the fifth wicket.
However, while an exciting contest looked on the cards as the tourists reached 169 for four after 34 overs, Steyn changed all that with two wickets in two balls including Ashraful who was caught behind off a superb late away-swinger.
Ashraful had produced some spectacular strokeplay in scoring 73 off 78 balls, while Shakib's 51 was more pedestrian, coming off 77 deliveries.
Steyn gave notice he is back to his best after illness with four for 16 in eight overs, helping to skittle Bangladesh who were all out for 222 in the 45th over.
South Africa, who won the toss and chose to bat first, had to call on the lower order to boost their total, with bowlers Johan Botha and Johann Louw slamming 66 runs in the last five overs.
The host's top five batsmen all played themselves in but only Jacques Kallis reached a half-century, in 72 balls, before being caught by Tamim Iqbal off Naeem Islam.
Hashim Amla scored briskly in the opening overs before he was run out for 35 in a controversial incident in which he was shoved off his feet by Bangladesh fast bowler Mashrafe Mortaza.