Third one-day international, Bulawayo:
Zimbabwe 323-7 (50 overs) bt Bangladesh 254 (44.2 overs) by 69 runs
Masakadza attempts a sweep shot during his 112-ball innings
Hamilton Masakadza hit a maiden one-day century as Zimbabwe beat Bangladesh by 69 runs in the third match of their series in Bulawayo.
Masakadza made 102 and shared a fourth-wicket stand of 142 with Brendan Taylor, who was run out for 94.
Elton Chigumbura weighed in with five sixes in his unbeaten 61 off 33 balls as the home side totalled 323-7.
Seamer Tawanda Mupariwa and spinner Ray Price then took three wickets each as as Bangladesh were bowled out for 254.
Despite the defeat, Bangladesh lead the series 2-1.
But the home side will go into the final two games in positive mood after piling up their highest limited overs total against a Test-playing nation.
Masakadza's hundred was his first for Zimbabwe since 2001, when he became the then youngest player in history to make a century in his debut Test by hitting 119 against West Indies aged just 17 years and 354 days.
"I've been waiting for this for a long time. I've been close a few times but today I finally came through.
"The greatest feeling is that I wanted to do well for the team and we won the game," he said afterwards.
Bangladesh never looked likely to chase down such a huge target after losing their first four wickets with only 39 on the board.
Raqibul Hasan made 78 before being bowled by Masakadza, who also took two catches, and Mahbulbul Alam hit three sixes in one over off spinner Malcolm Waller in making 59 off 43 balls, his highest score for Bangladesh.
But they were all out in the 45th over when Mupariwa (3-32) had Mahbulbul caught by Mark Vermeulen.
"We didn't bowl well and we didn't field well. It was a very difficult day for us," skipper Shakib Al Hasan commented.