Mohammad Mahmudullah became the first Bangladesh batsman to score a World Cup century as woeful England crashed out of the tournament with a 15-run loss to the Tigers at the Adelaide Oval on Monday.
Mahmudullah scored 103 and brother-in-law Mushfiqur Rahim made 89 as the Tigers recovered from eight for two to post a challenging 275 for seven after being sent in to bat in overcast conditions.
England, needing a win to stay afloat after winning just one of their previous four Pool A matches, were bowled out for 260 as seamer Rubel Hossain claimed four wickets and wicket-keeper Rahim held four catches.
Ian Bell made 63 but England slipped to 163 for six before Jos Buttler (65 off 52 balls) and Chris Woakes (42 not out) briefly revived their hoped with a 75-run stand for the seventh wicket.
But the dismissals of Buttler and Chris Jordan off successive balls in the 46th over turned the match Bangladesh's way.
"It was pretty poor, to be knocked out of the World Cup is unbelievably disappointing," said England captain Eoin Morgan, whose side will bow out having failed to beat a Test nation at the tournament with their only win thus far against Scotland.
"I'm gutted, we've struggled and fallen away since we arrived here. We wanted to get to the quarter-finals and from there fight through three games."
This was Bangladesh's third win over England in their last four one-day internationals, including the two-wicket success in Chittagong during the previous World Cup four years ago.
"I feel very proud," said Bangladesh captain Mashrafe Mortaza, who led his side superbly in the field.
"Mahmudullah scored his first hundred for Bangladesh, and Mushfiqur was also brilliant at the end.
"I think Rubel Hossain will be very happy now as he picked up four crucial wickets. I'm really happy for all those people back home who have wanted us to make it this far.
"We had a good combination today, especially with the seven batsmen. They showed their guts today, and the bowlers then did a very good job."
Victory meant Bangladesh assured themselves of a place in the knockout phase even before their last pool match against co-hosts New Zealand, only the second time in five attempts they have moved beyond the first round, with the Tigers stunning India to move to the Super Eights at the 2007 edition in the Caribbean.
England will return home after their closing 'dead' league match against Afghanistan in Sydney on Friday.
Mahmudullah and Rahim, who are brothers-in-law, put on 141 off 144 balls for the fifth wicket after Bangladesh were struggling at 99 for four in the 22nd over.
Mahmudullah, who hit seven fours and a six in his maiden one-day international century, surpassed the previous highest individual Bangladesh score at a World Cup of 95 by team-mate Tamim Iqbal against Scotland in Nelson last week.
Rahim's 77-ball knock contained eight boundaries and a six.
Soumya Sarkar, a 22-year-old left-hander playing only his fifth ODI, teamed up with Mahmudullah to retrieve the situation with an 86-run stand for the third wicket. He made 40.
Bell and Moeen Ali gave England a flying start with an opening stand of 43 off 44 balls when a messy run out cost them a wicket.
Bell turned his back at the non-striker's end as Ali charged down the wicket for a sharp single and failed to beat Sarkar's throw to the wicket-keeper from mid-on.
Alex Hales marked his first appearance in the tournament by helping Bell add 52 for the second wicket, before he was caught behind off skipper Mashrafe Mortaza for 27.
Rubel, returning for a second spell, broke England's back with the wickets of Bell and Morgan (nought) in four deliveries to make it 121 for four in the 27th over.
Bell's 82-ball vigil, in which he hit seven fours, ended when he edged a catch to Rahim aiming towards cover.
Morgan's poor form in a tournament in where he managed just 90 runs in four previous games continued as he hooked Rubel to fine-leg where Shakib Al Hasan took a well-judged catch.
England lost their third wicket in the space of 22 balls when James Taylor edged seamer Taskin Ahmed to Imrul Kayes in the slips after scoring just one run.
The fourth ball at the start of the batting powerplay in the 36th over produced a wicket for Mortaza, who had a settled Joe Root (29) caught behind by Rahim.