Co-hosts Bangladesh crashed out of the World Cup after losing their must-win Group B encounter with South Africa by a huge margin of 206 runs in Mirpur today.
The crushing defeat confirms a last-eight berth for England - with South Africa, India and West Indies completing the line-up from the group.
South Africa bowlers skittled out the Tigers for a paltry 78 in 28 overs, with Robin Peterson the wrecker-in-chief claiming four wickets.
Lonwabo Tsotsobe put South Africa on top by picking up three early wickets before the left-arm spinner cleaned up the Bangladesh bottom order and only skipper Shakib al Hasan showed signs of a fight scoring 30.
None of the top five Bangladeshi batsman reached double figures in pursuit of South Africa's 284 for eight, which was built around Jacques Kallis' 69 off 76 balls, Hashim Amla's 51 off 59 and Francois du Plessis' run-a-ball 52.
Batting first after winning the toss, Graeme Smith and Amla put on their best partnership of the tournament as the Proteas reached 97 off 20 overs.
Mahmudullah broke the stand in the next over by having captain Graeme Smith (45 off 68) stumped and Abdur Razzak cleaned up Amla soon after reaching his half-century.
Kallis and JP Duminy continued the good work until the latter was out to a loose shot as South Africa slipped to 141 for three after 30 overs.
But Kallis and new man Du Plessis consolidated further adding 82 in the next 14 overs. Kallis, who negated the threat of Bangladeshi spinners by using his feet, eased past 50 and looked set for a major score.
A couple of sixes and a boundary took him to 69, but Shakib stopped him in his tracks by taking a sharp return catch. The skipper followed it up with wicket of Morne van Wyk in his next over.
Du Plessis boosted the total with a half-century of his own but the Proteas lost four wickets for 35 in pursuit of quick runs.
Rubel Hossain and Shakib shared five wickets among them, but a handy contribution from Peterson (22 not out off nine balls) helped South Africa reach 284 in their 50 overs.
Bangladesh made a mess of their chase by losing four wickets in the first powerplay for just 29 runs after a decisive spell from the recalled Tsotsobe.
Mushfiqur Rahim and captain Shakib defied the Proteas for the next seven overs, but a diving catch from Smith ended Mushfiqur's vigil, giving Peterson a first wicket.
The Tigers avoided creating a new record for the lowest score by reaching 58 - the total managed by Bangladesh in their match against West Indies - resulting in a hug, if not entirely sincere, round of applause from the crowd.
But it turned out to be a short-lived joy as Mahmudullah lost his wicket in a mix up with his captain at the same score.
Bangladesh lost wickets in a heap from thereon as Peterson saw off Shakib and Shafiul Islam in the same over before Imran Tahir dismissed Razzak to leave the hosts on 62 for nine at the half-way mark.
Peterson knocked over the middle stump of Naeem Islam in the 28th over to end Bangladesh's World Cup campaign on a sad note.