Masakadza hit 93 off 58 balls, the highest innings by a Zimbabwean in a T20 international, as the southern Africans reached 180-4.
His heroics were then followed by Neville Madziva who grabbed 4-34 as the hosts were dismissed for 162 in 19 overs.
Mahmudullah top-scored for Bangladesh with 54 off 41 balls, but Zimbabwe were always in control after Madziva and Tendai Chisoro both claimed two wickets in their opening spells to reduce the home side to 17-4.
But Madziva sealed the victory with two wickets in his final spell, giving the visitors a signicant confidence boost in the build-up to the World Twenty20 which begins in India in early March.
More From This Section
Masakadza, who had equalled his own record of 79 in the opening match of the series, struck eight fours and five sixes in an unbeaten knock that ensured Zimbabwe compiled an imposing total.
After opting to bat first, Zimbabwe began aggressively, shrugging off the early dismissal of opener Vusi Sibanda who was caught at cover by Shakib Al Hasan off the bowling of Mashrafe Mortaza after making just four.
Rookie paceman Abu Hider bowled Mutumbami for 32 with a brilliant yorker before Taskin Ahmed took the wicket of Malcolm Waller for 36.
Waller, man of the match in Zimbabwe's 31-run victory during Wednesday's third contest, had again looked dangerous in an 18-ball innings before he was bowled.
But Masakadza continued to blaze away and was joined at the climax of the innings by Zimbabwe skipper Elton Chigumbura, who made an unbeaten five on his return after taking a break in the previous two matches.