Oman ran neck and neck with the Tigers for most of the match at Al Amerat Cricket Ground in Muscat on Tuesday, but the Bangladesh bowlers staged a late comeback to restrict the hosts to 127 for 9 in a chase of 154 for a win .
A confident Oman outfit, buoyed by a 10-wicket win over Papua New Guinea, were dealt an early blow in when Mustafizur trapped opener Aqib Ilyas leg before in the second over.
But the other opener, Jatinder Singh (40 off 33) kept the chase alive in partnership with Kashyap Prajapati (21 off 18).
The momentum began to swing in the Tigers' favour when Jatinder fell in the 13th over to Shakib’s delivery, caught by Liton Das at deep square leg.
The chase eventually fizzled out under the pressure created by the Bangladesh bowlers as the hosts lost wickets in regular intervals.
Shakib capped a man of the match display with three wickets, while Mustafizur, despite enduring a nightmare start during which he conceded five wides in the first over and dropped a catch, finished with a four-wicket haul.
Off-spinner Mahedi Hasan and seamer Mohammad Saifuddin chipped in with a wicket apiece while keeping the Oman batsmen in check.
After suffering a slip-up in the opener against Scotland, skipper Mahmudullah elected to bat first against Oman. But Bangladesh were under pressure at the start again when Liton fell in the third over of the innings.
Naim, who was in for Soumya Sarkar, stood firm to keep the Tigers on track to a challenging total, even as he watched others fall one by one at the other end of the crease. Naim was eventually dismissed in the 17th over but the youngster smashed four sixes and three boundaries in his innings of 64 off 50.
After Shakib (42 off 29) was run out by Aqib's brilliant direct hit in the 14th over, Afif Hossain, Mushfiqur Rahim and Mohammad Saifuddin failed to make any meaningful contribution to the Tigers' innings.
Mahmudullah was the only other batsman to hit double figures (17 off 10) as Bangladesh failed to make the most of the power play, scoring just 41 runs for six wickets in the last five overs.
Bangladesh face Papua New Guinea on Oct 21 and Oman play Scotland on Oct 22 in the Group B deciders.
Brief scores: Bangladesh 153 in 20 overs (Mohammad Naim 64, Shakib Al Hasan 42; Bilal Khan 3-18, Fayyaz Butt 3-30) beat Oman 127/9 in 20 overs (Jatinder Singh 40; Mustafizur Rahman 4-36, Shakib Al Hasan 3-28) by 26 runs.