Kagiso Rabada took 5-39 as the Proteas restricted Bangladesh to 194-9 in the second ODI at the Wanderers on Sunday.
Afif Hossain made 72 to lead a recovery by Bangladesh after Rabada, Lungi Ngidi and Wayne Parnell tore through their top order.
Bangladesh, who won the first match by 38 runs in Centurion on Friday, crashed to 34-5 after captain Tamim Iqbal won the toss and decided to bat.
Four of the first five wickets fell to deliveries that bounced sharply off the pitch.
Vicious pace and bounce ?
Kagiso Rabada wraps up his 6th over with the wicket of Yasir Ali – he’s got 3-15 ?
? Stream #SAvBAN live: https://t.co/0BMWdeEYT3 pic.twitter.com/nyHhgNw64d
— SuperSport ? (@SuperSportTV) March 20, 2022
The Proteas were hampered by an injury to Parnell, who left the field with a hamstring injury five balls into his third over.
South Africa had picked only five bowlers. Rabada had already bowled seven of his 10 overs in his opening spell of 3-25 and Bavuma had to rely on his slow medium-pacers and the spin of Tabraiz Shamsi and Keshav Maharaj for much of the innings.
With the pace threat negated, the left-handed Afif batted impressively as he shared partnerships of 60 with Mahmudullah (25) and 86 with Mehidy Hasan (38).
Afif hit nine fours in a 107-ball innings before falling to Rabada late in the innings.
© Agence France-Presse