Bangladesh cruised to a nine-wicket victory in Wednesday's third ODI at SuperSport Park to claim a first-ever series victory in South Africa.
South Africa levelled up the series last week, ending Bangladesh's four-game winning streak on the road in ODIs, but the tourists responded in style at Centurion.
Taskin Ahmed took five wickets to restrict the hosts to 154 all out and skipper Tamim Iqbal's unbeaten 87 ensured Bangladesh got the job done in 26.3 overs.
The Proteas, who had won nine of their 10 ODI matches against Bangladesh prior to this series, got off to a promising start and reached 46-0 but then lost all their wickets for just 108 further runs.
Openers Janneman Malan (39) and Quinton de Kock (12) raced to 46 off 40 deliveries, but the latter's resistance was halted by Mehidy Hasan Miraz.
Taskin got the wickets of Malan, Kyle Verreynne (9), David Miller (16), Dwaine Pretorius (20) and Kagiso Rabada (4) to finish with figures of 5-35 from nine overs.
Shakib Al Hasan also took two wickets, including the scalp of Temba Bavuma for just two, with Malan's knock proving to be the highest scoring for the home side.
Tamim set the tone in Bangladesh's chase with a 127-run opening stand with Litton Das (48), who fell just short of a half-century when he chipped Keshav Maharaj to extra cover
There was no stopping Tamim, though, as he remained unbeaten on 87 alongside Shakib (18no) to help Bangladesh ease to 156-1 and claim a famous victory.
Proteas taken to task
Taskin led the way for Bangladesh with a superb spell of fast bowling on his way to claiming a second five-wicket haul in ODIs.
His figures of 5-35 are the best of any bowler this series, as are the eight wickets he claimed, followed by six each for Rabada and Hasan.
Bangladesh on top of the world
With this routine victory, Bangladesh become only the second nation to win their first two men's ODIs at SuperSport Park after Pakistan.
The Tigers stay top of the World Cup Super League table as a result with 120 points from 18 matches, while South Africa are down in ninth on 49 points from 13 contests.