Sri Lanka completed a series whitewash after Zimbabwe collapsed to a 19-run defeat at the Harare Sports Club.
After two close shaves in the five-match series, the tourists looked up against it again after being bowled out for 152 - with Ed Rainsford taking 3-22 - but Zimbabwe stuttered to defeat with the line in sight.
Zimbabwe looked on the brink of an upset when a seventh-wicket stand of 72 from Keith Dabengwa (39) and Prosper Utseya (31) took them to within 23 of victory.
Muttiah Muralitharan (5-29) was the chief destroyer. Vusi Sibanda was the 36-year-old’s first victim when he was out lbw for five.
Hamilton Masakadza (7) followed soon after when he was caught by Ajantha Mendis after attempting to slog-sweep Dilhara Fernando over mid-wicket.
Chamu Chibhabha was Muralitharan’s next scalp, trapped lbw with just one run to his name, before he took Stuart Matsikenyeri the same way for four and then bowled Elton Chigumbura.
Tatenda Taibu fell next, trapped in front by Fernando for 14, leaving Zimbabwe with a mountain to climb.
But then Dabengwa and Utseya set about running up the score to put some doubt in Sri Lankan minds, and the tourists had to wait 28.1 overs until Dabengwa was bowled by Nuwan Kulasekara with the score at 130.
That wicket signalled the end of the Zimbabwe comeback as Utseya fell soon after, Kulasekara having him lbw as he equalled his career-best score.
Tawanda Mupariwa and Ray Price came and went quickly as the Zimbabwe tail failed to wag. Price’s dismissal for three signalled the sixth leg-before of Zimbabwe’s innings.

Tatenda Taibu dives full length to try and cut off a stroke from Sri Lanka's Jehan Mubarak at Harare
Earlier Sri Lanka posted a paltry 152 after a poor start of their own.
Openers Upul Tharanga and Mahela Jayawardene contributed only six runs off 34 balls before Tharanga was bowled by Rainsford and the Sri Lankan skipper caught by Utseya off the bowling of Mupariwa.
The tourists managed a meagre 38 runs off the first 100 balls with wickets also falling at regular intervals.
Chamara Kapugedera was caught at mid-wicket by Matsikenyeri for four before Kumar Sangakkara fell to a catch by Taibu after weighing in with 28.
But 26-year-old Thilina Kandamby, who top scored with 40, sparked some life into the tourists.
After Jehan Mubarak was caught for 16 by Matsikenyeri, Kandamby and Angelo Mathews set about running up the score until the former was run out.
Mathews scored 31 to take the total to 150 for nine before he was caught by Masakadza.
Kulasekara was bowled by Price for a single run and Muralitharan was run out for five.
Fernando added two more runs before becoming the last man to go, bowled middle stump by Rainsford.
Want to start playing cricket - or re-kindle your playing days?
Get all the latest features, news and action
Only a year and the Aussies are here - here's all the info you need
All the contact information and links to help you buy match tickets
Contact ECB by email, phone or fax - or feedback via ecb.co.uk
Want to watch some cricket? Find the matches you want to see
Get our news and scores feeds via RSS to your desktop or mobile
Enjoy our blogs, right across the cricketing spectrum, from players to volunteers
ECB publications for you to download as PDFs, plus other resources
Official site of the England and Wales Cricket Board