India were dismissed for 187 as Sri Lanka completed a one-sided victory by 161 runs in the tri-nations series in Kingston, Jamaica.
Mahela Jayawardene (107) and Upul Tharanga (174 not out) both hit centuries as Sri Lanka posted an imposing 348-1 after being put in by Dinesh Karthik.
And India were never in a position to challenge that score after losing wickets at regular intervals, eventually subsiding in the 45th over.
It was just a steady start from the Sri Lanka pair and Tharanga brought up the 50 from a loose Shami Ahmed ball in the 11th over.
Jayawardene hit the first six of the day when he launched Ishant Sharma over wide long on in the 15th over before he brought up his 50 with a lofted shot over Ravindra Jadeja.
Tharanga's fifth boundary took Sri Lanka within a run of the 100 mark which was reached with Jayawardene hitting Ravichandran Ashwin to long off.
Tharanga got to his 50 with a single off Ashwin before Sri Lanka reached the halfway point at 120 without loss, before Jayawardene raised the stakes, scoring almost a run a ball and he brought up his century off 107 deliveries including one six and nine fours.
Umesh Yadav spilled Tharanga before India finally made the breakthrough with Umesh holding on as he dived to his right at short third man to remove Jayawardene.
Angelo Mathews came to the crease and soon after Tharanga reached a hard-worked ton with a single off Shami Ahmed's overpitched delivery.
The pair both made India's attack look insipid thereafter, Tharanga finishing with 19 fours and three sixes while Mathews' quickfire innings off 44 included one six and four boundaries.
India quickly lost Rohit Sharma while Virat Kohli was another early casualty, and although several batsmen got starts they were undone trying to force the run-rate.
Spinner Rangana Herath was the pick of the bowling with 3-37 while Ravindra Jadeja remained 49 not out as the last five wickets fell for 45 runs.