Bangladesh's slender hopes of reaching the quarter-finals of the World Cup they are co-hosting were crushed mercilessly by South Africa on Saturday with a 206-run Group B defeat.
The result means South Africa will top the group and should have the easiest -- on paper -- draw of the qualifiers in the last eight against the fourth-placed Group A side.
It also ensured that India, England and the West Indies will progress to the knockout stage although the order in which they do will depend on Sunday's match between Mahendra Singh Dhoni and Darren Sammy's men in Chennai.
Bangladesh were in trouble from the moment that South African captain Graeme Smith won the toss and elected to bat on a pitch which took spin but was otherwise reliable.
Smith and Hashim Amla shared a 98-run opening stand to set solid foundations for South Africa's 284-8, a target which would have challenged any team never mind a talented but inexperienced Bangladesh side.
The hosts never recovered from an abysmal start with the first five wickets tumbling by the 16th over with only 36 runs on the board with all the batsmen departing in low single figures.
Captain Shakib Al Hasan (30), the only Bangladeshi to reach double figures, fought a solitary battle to make the score more respectable but he could only delay the inevitable as wickets tumbled at the other end.
A huge roar went up in the stands when Bangladesh crawled past the 58 run mark, their lowest ever ODI score, but 20 runs later it was all over and Bangladesh became the only one of the three co-hosts not to reach the knockout stages.
Fellow co-hosts Sri Lanka, Australia, New Zealand and Pakistan are the qualifiers from Group A. Earlier, half-centuries from Jacques Kallis, Faf du Plessis and Hashim Amla led South Africa to their challenging total.
Smith was the first man out when off spinner Mahmudullah had him stumped by Mushfiqur Rahim for 45.
The South African captain, who equalled his highest score of this World Cup, was given lbw on 26 off left-armer Abdur Razzak, a decision reversed by third umpire following a referral.
Amla dragged an innocuous Razzak delivery on to his stumps to end his impressive innings of 51 made off 59 balls including six fours.
Paceman Rubel Hossain had JP Duminy caught behind for 17, but a rock-solid Kallis ensured there was no collapse with 69 off 76 balls before he was caught and bowled by Shakib off a sharp chance.
Du Plessis completed his second one-day international fifty hitting Razzak for a six and two fours in consecutive deliveries and was caught by Tamim Iqbal at mid-off off Rubel for a run-a-ball 52.