The West Indies, restricted to 137-6 after electing to bat, hit back to bowl Sri Lanka out for 101 and silenced a sell-out crowd of 35 000 at the Premadasa stadium that included Sri Lanka's President Mahinda Rajapakse.
It was the first world title for the West Indies since the 50-over World Cup triumph under Clive Lloyd in 1979, and handed Sri Lanka their fourth defeat in a major final since 2007.
Spinner Sunil Narine grabbed three wickets for nine runs and captain Darren Sammy took two as the hosts, who had excelled in the field in the first session, undid the good work with irresponsible batting in the second.
Skipper Mahela Jayawardene survived two dropped catches to top-score with 33, while tail ender Nuwan Kulasekara hit 26 off 13 balls, including three fours and a six in the 16th over of seamer Ravi Rampaul.
Sri Lanka's unorthodox spinner Ajantha Mendis had taken four wickets for 12 runs as the West Indies collapsed once Chris Gayle was removed in the sixth over for only three runs.
Marlon Samuels was the only batsman to defy the spot-on Sri Lankan bowling, making 78 off 56 balls with the help of six sixes and three boundaries.
Brilliant stroke play
His brilliant stroke play, which earned him the man of the match award, helped the West Indies add 105 runs in the last 10 overs after they were reduced to 32-2 from the first 10.
"It is hard to explain what this victory means to me and my team," said Samuels, as the West Indies celebrated wildly with energetic 'Gangnam Style' dancing.
"Sri Lanka beat us twice in a practice match and in the Super Eights. But I told Chris [Gayle] that we can't lose to them thrice. All the hard work paid off today. The West Indies are finally going well again, we have a great future."
Jayawardene said it was tough to lose before the home crowd but wanted his team to learn from the mistakes and prepare for the future.
"The way we started the game was fantastic but a couple of mistakes in the field and a few bad overs shifted the momentum," the Sri Lankan captain said.
"We are disappointed for the huge crowd that came to support us. We need to sit together, have a chat on what went wrong and then move on."
Sri Lanka have now lost two successive 50-over World Cup finals in 2007 and 2011 and two World Twenty20 finals in 2009 and 2012.
Jayawardene and Kumar Sangakkara added 42 for the second wicket after Tillakaratne Dilshan had fallen in the second over.
The hosts were cruising at 48-1 in the 10th over when the West Indies bounced back by claiming four wickets for 13 runs.
Sangakkara holed out in the deep off Samuel Badree for 22, Angelo Mathews was bowled by Darren Sammy, Jayawardene was caught off a reverse sweep and Jeevan Mendis ran himself out.
Sri Lanka had taken an early grip on the match by keeping the West Indies down to 14-2 in the first six power play overs after Johnson Charles had been dismissed off the fifth ball of the match.
The West Indies had to wait till the 19th delivery to score their first run with the bat and Gayle needed nine balls to get off the mark.
The left-hander struggled for 16 deliveries to make three before he was trapped leg-before by Mendis in the sixth over.
Dwayne Bravo helped Samuels add 59 runs for the third wicket when he was given out leg-before by Australian umpire Simon Taufel, even though replays showed the ball go off the bat on to the pad.
Smashed a boundary
The 17th over, bowled by Malinga, produced 19 runs as Samuels smashed a boundary and two consecutive sixes to leave the frontline bowler with unflattering figures of 0-54 from his four overs.
Jayawardene resigned as Sri Lanka's Twenty20 captain on Sunday but insisted it had nothing to do with the 36-run defeat to the West Indies.
"I had told the selectors before the tournament started that I won't captain in T20 and they needed to groom someone else for the future," Jayawardene told reporters after the final in Colombo.
Jayawardene (35) will continue as a player in the shortest format and will also lead in both Test and one-day cricket.
The accomplished batsman has scored 1 224 runs in 44 Twenty20 internationals at a strike rate of 133.77 per 100 balls.
The first world title for the West Indies since the 50-over World Cup triumph in 1979 also handed Sri Lanka their fourth defeat in a major final since 2007.
Sri Lanka have now lost two successive 50-over World Cup finals in 2007 and 2011 and two World Twenty20 finals in 2009 and 2012. – Sapa-AFP