India, England and West Indies reach last eight after South Africa's big 206-run victory over the Tigers.
Captain sorry as World Cup co-hosts Bangladesh bow out
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 for eight, 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 crashing 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 ironic roar went up in the stands when Bangladesh crawled past the 58-run mark, their lowest ever ODI score which they recorded against West Indies earlier in this event, 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.
While the majority of the 25,000-strong crowd had already abandoned their seats long before the final curtains came down on Bangladesh's campaign, the few that stuck around vented their frustration by tossing their banners, caps and team jerseys towards the outfield.
As Shakib walked up for the presentation ceremony, boos and jeers echoed around the Shere Bangla National Stadium.
He had a simple message for the nation whose World Cup dreams now lay in tatters. "Just sorry," said the embarrassed skipper.
"We missed a big opportunity. The way we have been performing for the last 12 months we thought we will have a very good chance to qualify for the second round.
"But we didn't play good cricket throughout the tournament. Though we won some matches, we didn't play good cricket.
"The way we finished the tournament was not the way we wanted to finish. We wanted to finish on a high...we had to bat well but we didn't apply ourselves."
That lack of application by the home side allowed South Africa to bowl out their opponents yet again, a feat they achieved in all six of their group games.
Smith paid tribute to left-arm spinner Robin Peterson, who wrecked the Bangladeshi middle order with figures of 4-12. "Robbie has been around in South African cricket for a long time now. I think in the last six months to year people have started showing a lot of confidence in him," said Smith.
"I think the bowling unit as a whole has bowled well. To take 10 wickets in each game match is exciting for us and especially in these conditions."
Earlier, half-centuries from Jacques Kallis, Faf du Plessis and 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.
Hashim Amla b Razzak 51
Graeme Smith st. Mushfiqur b Mahmuduallah 45
Jacques Kallis c & b Shakib 69
JP Duminy c Mushfiqur b Rubel 17
Faf du Plessis c Tamim b Rubel 52
Morne van Wyk b Shakib 5
Johan Botha run out (Rubel) 12
Robin Peterson not out 22
Wayne Parnell b Rubel 0
Lonwabo Tsotsobe not out 4
Extras: (3lb,4w) 7
TOTAL: (for eight wickets, 50 overs) 284
Fall of wickets: 1-98, 2-107, 3-141, 4-223, 5-245, 6-249, 7-273, 8-280.
Did not bat: Imran Tahrir.
Bowling: Shafiul Islam 5-0-44-0 (1w), Rubel Hossain 8-0-56-3, Abdur Razzak 10-1-47-1 (1w), Naeem Islam 7-0-42-0 (1w), Mahmudullah 10-0-46-1 (1w), Shakib Al Hasan 10-0-46-2.
Tamim Iqbal c van Wyk b Tsotsobe 5
Imrul Kayes b Tsotsobe 4
Zunaed Siddique lbw b Botha 2
Shahriar Nafees b Tsotsobe 5
Mushfiqur Rahim c Smith b Peterson 3
Shakib Al Hasan c van Wyk b Peterson 30
Mahmudullah run out 5
Naeem Islam b Peterson 8
Shafiul Islam b Peterson 0
Abdur Razzak c peterson b Tahrir 0
Rubel Hossain not out 8
Extras: (5lb, 3w) 8
TOTAL: (all out, 28 overs) 78
Fall of wickets: 1-14, 2-15, 3-21, 4-21, 5-36, 6-58, 7-61, 8-61, 9-62, 10-78.
Bowling: Johan Botha 7-1-23-1, Lonwabo Tsotsobe 5-2-14-3, Wayne Parnell 4-1-4-0, Robin Peterson 7-3-12-4, Imran Tahrir 5-0-20-1.
Result: South Africa won by 206 runs.