Shakib Al Hasan top-scored with 64 runs as the Tigers suffered a batting collapse to be 221 all out at the Lord’s on Friday in a chase of 316 to win, a target they had crossed twice before in this tournament.
Captain Mashrafe Bin Mortaza (15 off 14) in his farewell World Cup game hit two sixes to cheer up the crowd before being stumped off a Shadab Khan delivery in the 44th over to ensure the margin of defeat below 100 runs.
Liton Das was the second top-scorer for Bangladesh with half the runs Shakib scored.
He is also the highest-scoring batsman of the tournament with 606 runs now, but India’s Rohit Sharma, David Warner and Aaron Finch of Australia, Joe Root of England and Kane Williamson of New Zealand still have at least one match each to play and fair chance to leapfrog the Bangladesh all-rounder.
Giving up just 35 runs in the process, he now also has the best figures for a Pakistan bowler in the competition's history.
But his brilliant performance coupled with Mohammed Amir’s in the tournament could not save Pakistan from being eliminated with poor run rate.
At the start of the chase, Soumya Sarkar (22) found himself in trouble facing the wily Amir and threw his wicket away to the Pakistani fast-bowler, failing to take advantage of a reprieve early when Haris Sohail dropped a regulation chance at first slip.
Tamim Iqbal could manage 8 runs off 21 balls before being bowled by an in-cutter by Shaheen, thus he ended his World Cup with just one fifty.
Mushfiqur Rahim started well, giving the fans the hope that he would support Shakib, but he ended up chopping a Wahab Riaz delivery on to the stumps.
Shakib was joined by Liton in the highest stand of 58 runs in the Bangladesh innings, which raised hopes of a victory with Mahmudullah and Mosaddek Hossain still to come in.
But the teenaged Pakistani bowler came back for his second spell to break the partnership by deceiving Liton with a slower delivery just like what he had done to Tamim.
Shaheen claimed the biggest scalp when he induced Shakib to give a thick edge behind the stumps to wicketkeeper Sarfaraz.
Mahmudullah, Mosaddek and the rest of the Bangladesh batsmen could not stand up to the young pacer as they lost last 5 wickets for 25 runs.
The margin for Pakistan to qualify for the semis would have been 84 had they scored 400 runs.
Mehidy Hasan Miraz, who opened the bowling, kept Pakistan’s run rate in check with an economy rate of 3 and took one wicket.
Mohammad Saifuddin struck thrice, having opener Fakhar Zaman (23), caught by Mahidy at point.
Saifuddin also broke an invaluable 157-run partnership between Imam and Babar by trapping the latter leg before wicket when he was just 4 runs away from a century.
The pacer, however, bled 77 runs in 9 overs before bowling Wahab Riaz out in the 47th over while Mashrafe gave away 47 runs in 7 overs ending the tournament with only one wicket.