Record-breaking Bangladesh condemned South Africa to a second Cricket World Cup defeat in four days, subduing the lackustre Proteas by 21 runs at The Oval.
Talisman all-rounder Shakib Al Hasan became the fastest man to 250 wickets and 5,000 One Day International runs in his 199th match, with a vital one for 50 with the ball and 75 with the bat.
Bangladesh notched their highest-ever ODI score of 330 for six, to add another World Cup scalp of South Africa to their famous win of 2007.
Mushfiqur Rahim fired 78 to share a 142-run third wicket stand with Shakib, who leaked just two fours in his 10 overs with the ball.
Mustafizur Rahman plundered three for 67, with Mohammad Saifuddin taking two for 57 in a comprehensive victory to expose serious shortcomings in the Proteas ranks.
South Africa simply had no answers, unable to pull off what would have proved a record World Cup run chase - and were left licking their wounds and counting a rising injury tally.
Lungi Ngidi's frustrations boiled over when he took a needless coconut-shy pitch at the stumps while standing on the square with Tamim Iqbal obviously in ground and forced to block the ball.
The 23-year-old paceman's day quickly worsened as he hobbled out with a hamstring injury having bowled just four fruitless overs. Now Ngidi joins the concussed Hashim Amla and shoulder injury-carrying Dale Steyn as doubts for Wednesday's pivotal clash with India
The Proteas ended on 309 for eight from their full allocation; some way shy and doubtless prompting a sizeable inquest.