You are not permitted to download, save or email this image. Visit image gallery to purchase the image.
Put into bat, Mahmudullah struck Bangladesh's first World Cup century and starred in two key partnerships to lift Bangladesh to 275 for seven.
Three-time finalists England made a mess of their chase on an Adelaide Oval track that held no demons and folded for 260 in the penultimate over.
Bangladesh looked a bundle of nerves towards the end but Rubel Hossain (4-53) claimed two wickets in the 49th over to trigger wild celebrations among their fans.
England made a decent start to their chase before losing their way in the crunch match.
Adjudged leg before wicket on 11, opener Moeen Ali successfully got the decision overturned but the bearded right-hander was run out after a mix-up with Ian Bell (63).
Bell, who hit Mashrafe Mortaza for three boundaries in an over, pulled and drive with impunity, adding 54 runs with Alex Hales (27).
Mortaza dismissed Hales but it was Hossain's double strike in the 27th over that turned the match on its head.
Done in by extra bounce, Bell was caught behind while Eoin Morgan hooked to the fine leg fielder to fall for his fifth duck in last 11 innings.
England's problems were compounded as James Taylor perished chasing a wide delivery and Joe Root fell for 29.
But Josh Buttler (65) and Chris Woakes (42 not out) injected life into the chase with some lusty hitting before Hossain dismissed Stuart Broad and James Anderson in the 49th over.
Earlier, Mahmudullah struck Bangladesh's first World Cup century and shared partnerships with Soumya Sarkar (40) and Mushfiquir Rahim (89) to help their side overcome a poor start.
With England needing to win both remaining pool matches to keep their quarter-final hopes alive, Morgan won the toss and decided to field, hoping his bowlers would capitalise on the early morning conditions.
Morgan set attacking field with a three-man slip cordon and Anderson found enough movement to induce two edges in his first seven deliveries, reducing Bangladesh to eight for two.
Mahmudullah initially struggled to find the middle of his bat but grew more confident with every over and added 86 runs with Sarkar to consolidate the innings.
England could not, however, maintain the pressure and Chris Jordan struggled for rhythm and conceded 15 runs in his second over.
Jordan dismissed Sarkar in the 21st over and Moeen sent back Shakib Al Hasan but Mahmudullah and Rahim compiled Bangladesh's record World Cup stand to thwart England.
Mahmudullah found an able ally in Rahim and the duo mixed caution with aggression to keep the scoreboard ticking over.
Mahmudullah looked a bundle of nerves approaching the 100-mark, which he eventually reached in the 44th over, scurrying for a single before embarking on an emotional celebration with Rahim.
He added another three runs before being run out after a 138-ball knock that included seven fours and two sixes.
Rahim continued punishing the English bowlers, hitting eight boundaries and a six in his 77-ball knock, his third half-century of the tournament.