Right-handed Shehzad remained unbeaten after a sparkling 111 off 62 balls to fire Pakistan to a commanding 190 for five before they returned to restrict Bangladesh to 140-7 for a win.
The result meant hosts Bangladesh and Australia have no chance of progressing any further in the tournament.
The winner of Tuesday's Pakistan v West Indies match will grab the second semi-final spot from Group Two after India qualified for last four with a hat-trick of wins.
Bangladesh's chase never took off. Tamim Iqbal (16) added 30 quick runs in just over three overs with Anamul Haq (18) before being castled by Umar Gul (3-30) and triggering a top order collapse.
Pakistan spin trio Saeed Ajmal (2-20), Shahid Afridi and Zulfiqar Babar struck in quick successions to deny Bangladesh any momentum.
Shakib Al Hasan (38) hit Babar for two consecutive sixes and played with natural flair in his 32-ball knock but it did little beyond injecting some temporarily excitement in the Sher-e-Bangla National Stadium where the crowd had gone silent.
Shehzad, 22, hit Mashrafe Mortaza for three successive boundaries and a six in the third over to signal his intention and it took him only 30 balls to race to his half-century after Pakistan had opted to bat first in their must-win match.
Cruising at 43 for no loss in the fifth over, Pakistan lost three quick wickets to slump to 71 for three but Shehzad was unperturbed as well as unstoppable.
Boundaries continued to flow from his blade and he took a single off Shakib to bring up the second century of this year's tournament, celebrating the feat with his fifth six as he and Afridi (22) plundered 24 runs off that productive Mortaza over.
- Sports & Recreation
- Shahid Afridi