Shakib hit an unbeaten 70 off 45 balls to guide Bangladesh to 139-6 in 19 overs after young off-spinner Afif Hossain led the bowling effort with 2-9.
Captain Masakadza hit 71 off 42 balls with four fours and five sixes as Zimbabwe reached a target of 156 with three balls to spare.
The hosts will face Afghanistan in the final on Tuesday in Dhaka, while Zimbabwe will finish their campaign against the same opponents on Friday.
Soumya faced criticism for his poor outings in the tournament so far, having scored just four runs in two innings including a duck.
Nabi hit an unbeaten 84 off 54 balls under pressure to guide Afghanistan to 164-6 before Mujeeb claimed a career-best 4-15.
"We have so many good players at the moment and we just need guys to jump out the box and be a lot more consistent."
Najibullah Zadran hit a blistering half-century as Afghanistan beat Zimbabwe by 28 runs in their first match of the tri-nation T20I tournament.
Afif, batting at number eight, hit eight fours and a six in his maiden international fifty that guided Bangladesh to 148-7 in 17.4 overs.
Tamim Iqbal continues to miss out after requesting a break from international cricket.
Hasan Ali, Mohammad Nawaz, Imran Farhat among captains named for Pakistan Cup
PSL 2021: How the squads stack up after the draft
The PSL 2021 Player Draft: Live Blog
Hasan Ali returns to Test side, Pakistan name nine uncapped players for South Africa series
HBL PSL 2021: Rashid Khan, Chris Gayle, Dawid Malan in star-studded Platinum roster
Rabada returns, Baartman and Dupavillon earn maiden call-up for Pakistan Tests
PSL 2021: Kings-Gladiators clash to kick off event; final to be held in Lahore
Ben Dunk leaves Melbourne Stars midway through Big Bash League
Ben Stokes Ashes miracle was playing on my mind - Hasan Ali on QeA Trophy final heroics
PSL 2021: Alex Hales traded to United, Colin Ingram to Kings; Zalmi release Hasan Ali