Debutant leg-spinner Mavuta claimed 4-21 and off-spinner Raza's 3-41 as hosts Bangladesh were left chasing 321 runs on the fourth day in the northeastern city of Sylhet.
Wellington Masakadza, another debutant, also shone with two wickets as Zimbabwe made quick work of Bangladesh's lower order, dismissing the hosts for 169.
Left-arm spinner Maskadza took the final wicket of the innings, sending Ariful Haque for 38 as Zimbabwe notched their first Test win since beating Pakistan in Harare in 2013.
It is also the first time Zimbabwe has clinched an away Test victory since beating Bangladesh in Chittagong 17 years ago in 2001.
"I am ecstatic. I thought the guys went out and worked really hard to apply themselves," Zimbabwe captain Hamilton Masakadza said in the post match presentation ceremony.
Zimbabwe sensed a win once Raza claimed three vital wickets in the opening session to reduce Bangladesh's innings to half.
Kyle Jarvis and Mavuta joined the act with Raza in the morning as they chipped in with a wicket apiece to leave Bangladesh 111-5 at the break.
Bangladesh resumed play on 26-0 but within half-an-hour had lost their first wicket, with others following quickly.
I think the wicket was good, but we didn't apply ourselves with the bat. We were not disciplined enough to restrict our strokes.
Play started 30 minutes early to make up for the lost time after bad light brought a premature end to day three, with Bangladesh still needing 295 runs on a wearing pitch.
The home side - whose best run chase was 217-6 against the West Indies in 2009 - started to throw wickets once Raza reviewed a leg-before appeal against opener Liton Das.
The umpire gave Liton not out but a TV replay indicated the ball would have hit the stump after pitching outside off - ending Liton's innings on 23.
One down, Mominul Haque dragged a Jarvis delivery onto his stumps for nine before Raza bowled Imrul Kayes for 43 to leave Bangladesh at 83-3.
Skipper Mahmudullah promoted himself to number four but could not rescue his side and perished for 16, giving a catch to substitute fielder Craig Ervine at short leg off Raza.
Raza then took a spectacular catch at cover on the stroke of lunch to hand debutant Mavuta his maiden Test wicket and send back Nazmul Hossain.
"I think the wicket was good, but we didn't apply ourselves with the bat. We were not disciplined enough to restrict our strokes," said Bangladesh skipper Mahmudullah.
Mavuta dismissed Bangladesh's last accomplished batsman Mushfiqur Rahim soon after play resume before Zimbabwe wrapped things up.
The second Test will be held in Dhaka from November 11-15
Zimbabwe 1st Innings: 282
Bangladesh 1st Innings: 143
Zimbabwe 2nd Innings: 181
Bangladesh 2nd Innings(Overnight 26-0)
Liton Das lbw Raza 23
Imrul Kayes b Raza 43
Mominul Haque b Jarvis 9
Mahmudullah c Sub (Ervine) b Raza 16
Nazmul Hossain c Raza v Mavuta 13
Mushfiqur Rahim c W Masakadza b Mavuta 13
Ariful Haque c Chakabva b W Masakadza 38
Mehidy Hasan c Chakabva b Mavuta 7
Taijul Islam c Taylor b W Maskadza 0
Nazmul Islam lbw Mavuta 0
Abu Jayed not out 0
Extras: (5b, 2lb) 7
Total: 169 all out (63.1 overs)
Fall of wickets: 1-56, 2-67, 3-83, 4-102, 5-111, 6-132, 7-150, 8-151, 9-155, 10-169.
Bowling: Kyle Jarvis 14-5-29-1, Tendai Chatara 9-2-25-0, Sikandar Raza 17-1-41-3, Sean Williams 8-2-13-0, Brandon Mavuta 10-2-21-4, Wellington Masakadza 5.1-0-33-2.
Result: Zimbabwe won by 151 runs.
Umpires: Rod Tucker, Australia, and Richard Kettleborough, England.
TV Umpire: Kumar Dharmasena, Sri Lanka
Match Referee: Ranjan Madugalle, Sri Lanka.