All-rounder Mortaza slammed a brisk 36 and left-arm spinner Razzak bagged 3-15 as Bangladesh comfortably won what was the maiden Twenty20 international for both teams.
Put in to bat, Bangladesh set a target of 167 for the visitors, who folded for 123 in exactly 20 overs.
Left-hander Sean Williams (38) and Hamilton Masakadza (35) shared in a 54-run stand for the fourth wicket for Zimbabwe, but Razzak bagged three crucial wickets including Masakadza's scalp.
Earlier, Bangladesh scored at a brisk pace to reach 166 in 19.5 overs.
Mortaza, coming in at number eight, scored 36 off 26 balls while Aftab Ahmed (28), Saqibul Hasan (26) and Shahriar Nafees (25) were the others to chip in.
Mortaza hit two sixes and two fours and was the last man out, bowled by medium-pacer Elton Chigumbura off the penultimate ball of their quota of overs.
For Zimbabwe, skipper Prosper Utseya bagged three wickets with his off-spinners.
Bangladesh and Zimbabwe will play five one-day internationals from Thursday.
Brief scores:
Bangladesh 166 in 19.5 overs (Mashrafe Mortaza 36, Aftab Ahmed 28, Saqibul Hasan 26, Shahriar Nafees 25, Prosper Utseya 3-25) beat Zimbabwe 123 in 20 overs (Sean Williams 38, Hamilton Masakadza 35, Abdur Razzak 3-15, Shahadat Hossain 2-22).