Sri Lankan spinner Jeffrey Vandersay returned figures of 4-10 to lead Zimbabwe's 184-run rout in the third one-day international (ODI) as the hosts clinched the series 2-1 on Friday.
Zimbabwe crashed out for 70 in 24.4 overs as Sri Lankan bowlers combined to defend their total of 254-9 in Kandy.
Fast bowler Dushmantha Chameera and offspinner Ramesh Mendis claimed two wickets each.
Opening batsman Pathum Nissanka top-scored with 55 and Charith Asalanka made 52 to boost Sri Lanka's score despite a disciplined bowling effort by Zimbabwe.
But leg-spinner Vandersay made the match his own with career-best figures as Sri Lanka earned crucial Super League points in their attempt to get a direct entry into the 2023 World Cup.
"We played really good cricket throughout, but I think winning the toss played a really big role, especially today," skipper Dasun Shanaka said after the win.
"It was more on the slower side, we thought 270 would be ideal, so we felt we were maybe 20 runs short. But we always knew we were in it with our spinners were always in with a chance."
Sri Lanka bounced back from their opening loss despite missing several key players including Wanindu Hasaranga and Dhananjaya de Silva.
"It's really good to have so many good players sitting out, we haven't had such depth for many years and it's a good sign for Sri Lanka cricket for the coming years," said Shanaka.
Sri Lankan bowlers came all guns blazing to defend the lowest total of the series that witnessed a successful chase of 297 in the opening match by the hosts who then fell 22 runs short of their target of 303 in the second game.
Chatara's 100 wickets
Chameera struck on successive deliveries to send back Regis Chakabva for one and skipper Craig Ervine for nought in the third over of the chase.
Sean Williams avoided the hat-trick but soon got bowled by off spinner Maheesh Theekshana for six.
Vandersay got Takudzwanashe Kaitano, who made his ODI debut in the series, stumped for 19 with wicketkeeper Kusal Mendis taking off the bails in a flash.
Ramesh, who made a valuable 26 with the bat, made it count with two wickets after he replaced Nuwan Pradeep and the opposition batting fell like a pack of cards.
Earlier Nissanka got Sri Lanka off to a good start as he put on 80 runs with opening partner Kusal Mendis.
Zimbabwe hit back with wickets to dent the hosts who wobbled despite a 56-ball knock Asalanka who became Tendai Chatara's 100th ODI scalp.
Chatara became the fastest Zimbabwe bowler to a century of ODI wickets in 76 matches as he surpassed former captain and fast bowler Heath Streak's effort from 81 matches.
Richard Ngarava returned figures of 2-46 from his nine overs.
Chamika Karunaratne, who made 30, and Ramesh put on 48 runs for the seventh wicket to add to the total which turned out to be a winning one.
"We've put in some really good performances in the first two games, but it's really disappointing to end the series with a display like that," said Ervine.
"In terms of positives, our opening partnership is definitely a plus. Kaitano has been great and I'm sure he's gonna be around for a while."