Bangladesh had a mathematical chance of dumping out the 2009 champions, but required a sizeable win to overcome their poor net run rate.
They chose to bat first, which meant they had to win by a 36-run margin. The Tigers gave themselves a chance of pulling it off, too, after setting an impressive 176 for five wickets, led by Shakib Al Hasan's 54-ball 84.
But a disappointing bowling performance undid all their good work, and Mohammad Hafeez and Nazir took full advantage, plundering 124 for the first wicket in just 13 and a half overs to all but settle qualification.
Nazir was caught in the deep after his 36-ball innings, and Hafeez departed three balls later for 45, but Nasir Jamshed (29 from 14) and Kamran Akmal (22 from 15) took them into the Super Eights - and then to the victory on the evening with eight balls to spare.
The result marks another disappointing tournament on the world stage for Bangladesh, who return home winless without having pushed either of their opponents close.
But Pakistan, who overcame a wobbly display with the ball to chase down the highest total at the tournament so far, advance into the next phase in impressive form.
The tournament now takes a rest day before the start of the Super Eight stage, where the teams are split into two pools of four.
The top two from each group will progress to the semi-finals on October 4 and 5, with the final on October 7 in Colombo.
CONFIRMED SUPER EIGHT GROUPS:
GROUP E: Sri Lanka, West Indies, ENGLAND, New Zealand
GROUP F: South Africa, Australia, India, Pakistan