Sri Lanka captain Tillakaratne Dilshan scored a commanding century to help his side win the Tri-Nation series final against Zimbabwe in Harare.
Dilshan (108 not out) shared a 160-run opening stand with Upul Tharanga (72) as the hosts lost just one wicket to overcome Zimbabwe's below-par total of 199, which largely came on the back of former captain Tatenda Taibu's 71.
Dilhara Fernando took three wickets, while spin duo Ajantha and Jeevan Mendis snared two apiece to bowl out the hosts and justify their skipper's decision of fielding first.
In reply, Dilshan and Tharanga gave their side a flying start.
Dilshan was more aggressive and blasted two fours off Chris Mpofu in the fifth over as the visitors posted 34 for no loss.
The duo continued to play attacking strokes and looked in complete control in the following overs.
Dilshan raced to his half century with a square cut in the 16th over and Tharanga hit a towering six in the next to bring 100 runs up for his side.
Tharanga too reached 50 soon after with a four off Graeme Cremer in the 18th over.
He along with Dilshan took the score to 155 at the end of the 25th over, but became a victim of bad running between the wickets in the next.
Dinesh Chandimal (16no) joined his captain in the middle and made sure Sri Lanka were home without any further damage.
Earlier, Sri Lanka's bowlers kept a tight leash on Zimbabwe's batsmen right from the start, and their efforts were rewarded in the fifth over when Hamilton Masakadza (four) nicked a Nuwan Kulasekara outswinger to wicketkeeper Chandimal.
Brendan Taylor (19) tried to break the shackles and smashed a boundary off Kulasekara in the ninth over and added another off Fernando in the next.
But the bowler had the last laugh when he sent Taylor packing in the same over, thanks to a brilliant diving catch by Thilan Samaraweera at slips.
Craig Ervine (nine) too ran himself out in the 17th over after struggling against a good old-fashioned spin bowling by Ajantha Mendis.
Taibu and Greg Lamb played patiently in the middle overs to help the hosts recover from the early jolts.
Taibu blasted two fours off Suraj Randiv in the 24th over and completed his well-paced half-century four overs later.
He celebrated the achievement with a stylish reverse sweep off Dilshan in the 30th over as Zimbabwe reached 107 for three.
But the batsman fell to Fernando in the 36th over after adding 21 more runs to his account.
Skipper Elton Chigumbura (10) too lost his wicket soon after when he failed to read a Jeevan Mendis flipper and hit it straight to Dilshan at covers.
Lamb (37) followed his skipper back to the pavilion as well when Jeevan Mendis clean bowled him in the 42nd over and Charles Coventry (18) lost his wicket to Jeevan Mendis in the next.
Cremer, Ray Price and Chris Mpofu did not last long either and followed the procession as the hosts were bowled out with an over to spare.
Zimbabwe: Hamilton Masakadza, Brendan Taylor, Charles Coventry, Elton Chigumbura (C), Tatenda Taibu (W), Craig Ervine, Greg Lamb, Chris Mpofu, Graeme Cremer, Prosper Utseya, Ray Price
Sri Lanka: Upul Tharanga, Tillakaratne Dilshan (C), Dinesh Chandimal (W), Chamara Kapugedara, Angelo Mathews, Thilan Samaraweera, Jeewan Mendis, Ajantha Mendis, Suraj Randiv, Nuwan Kulasekara, Dilhara Fernando