|Suraj Randiv dismisses Dhoni after a defiant innings from the India captain [AFP]
Tillakaratne Dilshan cracked a century to set up a 74-run victory for Sri Lanka over India in the Tri-Series final in Dambulla.
The opener smashed one six and 12 fours in a 115-ball 110 for his eighth one-day hundred, and the first at home, as Sri Lanka posted a challenging 299-8 on a good batting pitch after winning the toss in the day-night match on Saturday.
India never seriously threatened Sri Lanka's total and were bowled out for 225, despite a fighting 67 by skipper Mahendra Singh Dhoni.
"It was a good toss to win," said Sri Lanka captain Kumar Sangakkara.
"Our openers Mahela Jayawardene and Dilshan started well. Dilshan then continued to bat really well.
"Thisara Perera lengthens our batting, but his bowling has been very impressive in the last couple of games. The discipline in line and length has been the key for us."
India needed a big partnership to achieve the stiff target, but the highest stand was of just 50 runs for the third wicket between Virat Kohli and Yuvraj Singh.
Kohli (37), Suresh Raina (29), Virender Sehwag (28) and Yuvraj (26) got starts, but failed to convert them into big knocks.
India suffered a big setback when in-form opener Sehwag was run out, failing to beat a Chamara Kapugedera direct-hit at the striker's end after hitting six fours in his 22-ball knock.
Dhoni was the last man out, but hardly received support from the other end as Sri Lanka's bowlers kept striking at regular intervals.
Paceman Perera and off-spinner Suraj Randiv took three wicket apiece while fast bowler Lasith Malinga, who turned 27 on Saturday, finished with two wickets.
"We just didn't spend enough time in the middle," said Dhoni.
"Credit goes to Sri Lanka as they batted and bowled well. Our bowlers gave them a bit of width and that's one thing you don't want to give Dilshan. He smashed us all around the park."
Sangakkara earlier built on man-of-the-match Dilshan's effort with an attractive 62-ball 71, which included one six and seven fours. His brisk knock saw the hosts plunder 80 runs in the last 10 overs.
Dilshan, 33, dominated the Indian attack with exciting strokeplay to put his team on course for a big total, adding 121 for the opening wicket with makeshift opener Jayawardene (39).
Jayawardene also became the third Sri Lankan after Sanath Jayasuriya and Aravinda de Silva to complete 9,000 runs in one-day internationals during his 67-ball knock.
Dilshan was more aggressive than Jayawardene, hoisting paceman Ishant Sharma over long-on for a six and hitting a four off the next delivery. He reached his half-century when he cut left-arm seamer Ashish Nehra for a four.
Although Sri Lanka lost Jayawardene and Upul Tharanga (six) in the space of 11 runs, they continued to maintain an impressive run-rate, thanks to Dilshan's aggressive knock.
Dilshan, who also added 85 for the third wicket with Sangakkara, fell in the 40th over when he pulled paceman Praveen Kumar to Ishant Sharma at deep square-leg.