Zimbabwe took the fourth ODI against Sri Lanka after a rain delay saw the total they were chasing revised.
Sri Lanka had earlier set a total of 300 for 6 off the back of another glittering opening partnership from Niroshan Dickwella and Danushka Gunathilaka.
Dickwella notched his second successive ODI hundred while Gunathilaka hit 87 to provide a brilliant platform for Sri Lanka.
The pair put on another 200 opening partnership but when Gunathilaka was bowled by Malcolm Waller things began to unravel.
Dickwella (116) and Angelo Mathews (42) kept things going initially but wickets fell regularly and the hosts were probably a good thirty runs shy of where they should have been.
Waller was the pick of the Zimbabwe bowlers picking up figures of 2 for 44 in his ten overs.
In response Zimbabwe got off to a rapid start thanks largely to Solomon Mire's 43 off 30 balls while Hamilton Masakadza (28) and Tarisai Musakanda (30) made handy contributions.
The game was interestingly poised when the rain came down with Zimbabwe ahead on DLS at 135/3 after 21 overs.
When play resumed with Craig Ervine on 23 not out with Sean Wlliams (3*) Zimbabwe needed 80 runs to win off ten overs.
There were some nervous moments as wickets fell with the tourists pushing for quick runs but a partnership of 43 between Waller (20) and Ervine (69*) saw Zimbabwe to a series levelling win in Hambantota.
Ervine earned the man of the match award for his assured innings while Wanindu Hasaranga was the pick of the Sri Lanka bowlers for the third game in a row with figures of 3 for 40.
The fifth and final match of the series takes place in Hambantota on Monday with the result set to decide the series.