The series is now tied at 1-1 and the decider will be played at the same venue on Saturday.
The edge-of-the-seat thrilling match went down to the last ball when last man Ryan Klein got run out while attempting a near-impossible third run which would have tied the match.
Chasing 272, The Netherlands were cruising fine at 213 for four before off-spinner Madhevere dismissed Colin Ackermann, Teja Nidamanuru and Paul van Meekeren off the first three balls of the 44th over.
Colin Ackermann ☝Teja Nidamanuru ☝Paul van Meekeren ☝A stunning hat-trick for Wessly Madhevere 🤩Watch… https://t.co/hFTwiFnyHj
— ICC (@ICC) 1679581854000
And that quickly changed the momentum of the game. Dutch skipper Scott Edwards hit 36 but his team’s hopes seemed over when he fell to off-spinner Sikandar Raza with 20 runs still needed off nine balls.
It came down to 10 needed off the last two balls.
Fred Klaassen hit a six off Tendai Chatara and then drove the last ball into the covers. The batsmen ran two but Brad Evans’ throw to Chatara left Klein well short of his ground.
Max O’Dowd (81) and Tom Cooper (74) laid the foundation for what seemed a likely Netherlands win with a second-wicket partnership of 125 off 152 balls.
Sean Williams, returning after a finger injury, top-scored for Zimbabwe with 77 while 19-year-old leg-spinner Shariz Ahmad took five wickets for 43 runs for the Netherlands.
Zimbabwe 271 in 49.2 overs (C. Ervine 39, W. Madhevere 43, S. Williams 77, C. Madande 52; P van Meekeren 2-66, C. Ackermann 2-51, Shariz Ahmad 5-43) v Netherlands 270 in 50 overs (M. O’Dowd 81, T. Cooper 74, S. Edwards 36; S. Raza 3-39, Madhevere 3-36)
(With AFP inputs)