Angelo Mathews held his nerve with the ball to help Sri Lanka clinch a tense six-run win over West Indies in the third one-day international and sweep the series 3-0 on Sunday.
Mathews claimed four wickets and denied West Indies 13 runs in the last over, restricting the tourist to 301 for nine in its chase of 308 in Pallekele.
Fabian Allen smashed 37 off 15 balls to close in on the West Indies target but fell to Mathews while going for a six in the second ball of the 50th over.
Kusal Mendis top-scored with 55 in Sri Lanka's 307 all out after electing to bat first and then took a crucial catch at deep mid-wicket to send back Allen.
Valiant knocks from Shai Hope (72), Sunil Ambris (60), Nicholas Pooran (50) and skipper Kieron Pollard (49) also kept West Indies in the hunt till the last over.
Mathews returned figures of 4-59 in his 10 overs of medium-pace bowling.
Earlier West Indies paceman Alzarri Joseph claimed four wickets as Sri Lanka was bowled out in 50 overs.
Avishka Fernando and skipper Dimuth Karunaratne gave the host a brisk start with a 60-run opening stand before the West Indies struck.
Joseph got Fernando caught behind for 29, and spinner Roston Chase caught and bowled Karunaratne for 44.
Kusal Perera, who made 44, and Mendis then rebuilt the innings during their 89-run stand to take the attack to the opposition.
The in-form Mendis, who hit a century in his team's 161-run thrashing of West Indies on Wednesday, completed his 17th ODI fifty before falling to Joseph.
Fast bowler Sheldon Cottrell bowled Mathews for 12, but the rest of the batsmen kept up the charge.
Dhananjaya De Silva, who completed his fifty in just 45 balls with a boundary off Jason Holder, and Thisara Perera put on 64 runs for the sixth wicket.
Joseph broke the stand with the wicket of De Silva and sent Perera back to the pavilion for 38, but the damage had already been done.
The two teams will now play two Twenty20 internationals on Wednesday and Friday in Pallekele.