Sri Lanka spinner Maheesh Theekshana returned figures of 4-31 to help bowl out Zimbabwe for 208 despite skipper Craig Ervine's 82 in the second one-day international on Monday.
Zimbabwe elected to bat first in Colombo and looked good at 182-4, but were bowled out in 44.4 overs losing the last six wickets for just 26 runs.
The left-handed Ervine put on key partnerships including 67-run fifth-wicket stand with Ryan Burl, who made 31, but the batting fell apart after the captain's departure.
Ervine was superbly caught by Sadeera Samarawickrama, who took a one handed catch diving to his right at extra cover off fast bowler Dushmantha Chameera.
Ervine survived a stumping chance as his opposite number Kusal Mendis couldn't collect the ball cleanly. He was on 29 at that point and went onto post his 20th half-century and the fifth as captain.
Theekshana was ably supported by the bowlers as fellow spinner Jeffrey Vandersay, who made a remarkable comeback, and Chameera took two wickets each.
The first game between the teams on Saturday was washed out by rain and inclement weather could play spoilsport again. The final game is on Thursday.