Opener Hamilton Mazakadza hit a sparkling century as Zimbabwe posted 310 for eight against Sri Lanka in the third one-day international in Hambantota on Thursday.
Masakadza (111) put on a crucial 127-run partnership for the second wicket with Tarisai Musakanda (48) before Sri Lanka’s bowlers struck back at the Mahinda Rajapaksa Cricket Stadium.
Masakadza’s 98-ball knock, laced with 15 fours and a six, had Zimbabwe eyeing 350-plus at one point before a middle-order collapse pulled them back.
Teenage legspinner Wanindu Hasaranga, who took a hat-trick on his ODI debut in the second match in Galle, and paceman Asela Gunaratne grabbed two wickets each.
Sean Williams contributed with a gutsy 43 while cameos from wicketkeeper-batsman Peter Moor (24) and Sikandar Raza (25 not out) helped Zimbabwe cross the 300-run mark.
Graeme Cremer-led Zimbabwe are looking to go ahead in the five-match series after the hosts won the previous ODI on Sunday to level the series at 1-1.
SRI LANKA: N Dickwella (wk), MD Gunathilaka, BKG Mendis, WU Tharanga, AD Mathews (capt), DAS Gunaratne, PWH de Silva, PVD Chameera, PADLR Sandakan, SL Malinga, N Pradeep
ZIMBABWE: SF Mire, H Masakadza, CR Ervine, SC Williams, Sikandar Raza, PJ Moor (wk), TK Musakanda, MN Waller, AG Cremer (capt), TL Chatara, CT Mumba