After opting to field, Bangladesh made the perfect start with the new ball. Taskin Ahmed removed both openers, dismissing Brian Bennett (6) and Ben Curran (2), while Shoriful Islam sent back Craig Ervine (5) as Zimbabwe slumped to 27 for 3.
Innocent Kaia tried to rebuild with a patient 25, but Bangladesh kept the pressure on before Taskin claimed his second wicket to leave the hosts at 78 for 4.
Madhevere then anchored Zimbabwe's recovery, mixing caution with aggression in a fluent 75 off 74 balls, featuring five fours and a six.
He shared a 73-run partnership with Brad Evans, who continued the counterattack with a brisk 50 off 43 deliveries, including five fours and two sixes, helping Zimbabwe recover from a precarious position.
Left-arm spinner Tanvir Islam broke the momentum by dismissing Sikandar Raza (11) and later removing the well-set Madhevere. Shoriful returned to strike twice late in the innings, accounting for Clive Madande (1) and Evans, while Mohammad Saifuddin cleaned up Ernest Masuku to wrap up the innings.
Shoriful was the standout performer for Bangladesh with 4 for 44, while Taskin Ahmed claimed 2 for 32. Tanvir Islam also impressed with 2 for 37, as Bangladesh bundled Zimbabwe out for 199, leaving themselves a target of 200 to avoid an ODI series whitewash.