Sri Lanka smashed 91 from their last 10 overs to post 274-6 in Mumbai, with Mahela Jayawardene making a superb 103.
India lost Virender Sehwag and Sachin Tendulkar early on but Gautam Gambhir and Mahendra Dhoni rebuilt the innings.
Gambhir was out for 97, but captain Dhoni’s superb unbeaten 91 saw India to a famous win with 10 balls to spare.
The captain, struggling for form throughout the tournament, played the innings of his life and sealed the victory with a phenomenal straight six that sailed high into the stands, providing the catalyst for euphoric celebrations in the Wankhede Stadium.
Tendulkar’s early dismissal for 18 ensured there was to be no fairytale 100th international century for Mumbai’s favourite son.
But wonderful innings from Gambhir and Dhoni ensured the “Little Master” can finally get his hands on the sport’s ultimate prize at the sixth attempt.
Meanwhile, it was a sad end to the incredible career of Sri Lanka off-spinner Muttiah Muralitharan, who failed to take a wicket in his last international match.
Jayawardene became the first player to score a hundred in the final and finish on the losing side. — BBCSport