A capacity and partisan crowd celebrated every run as captain Mahela Jayawardene (65no) oversaw a composed run chase after the Windies had made 129 for five.
Jayawardene always had things under control, in a 45-ball half-century containing eight fours, to ensure Sri Lanka completed their straightforward task with almost five overs to spare. He shared an unbroken century stand with Kumar Sangakkara and Sri Lanka therefore lead Super Eight Group E as the only team with two wins to their name.
Marlon Samuels (50) and Dwayne Bravo were largely responsible for the Windies mustering as many as they did after Darren Sammy unsurprisingly chose to bat first on an awkward, used surface.
Skilful seamer Nuwan Kulasekera conceded only seven runs in his first three overs, but 21 to Samuels and Andre Russell when he came back for his last.
Kulasekera was still in credit, having picked up the key wicket of Chris Gayle when the West Indies' danger man edged behind as he chased an attempted cut at a wide ball.
Number three Samuels bided his time, in a stand of 65 with Bravo, as Ajantha Mendis continued to make life difficult and returned figures of two for 12 in favourable conditions for his brand of slow bowling.
Samuels upped the ante in the later overs - apart from the penultimate, in which Lasith Malinga proved tough to get away - to complete a 34-ball half-century containing four fours and two sixes.
One of those maximums was a straight one off Kulasekera which carried more than 100 metres to become the biggest hit of the tournament so far.
But Samuels and his team must hope they have more than that to celebrate when they return here on Monday, to face New Zealand, in search of their second Super Eight victory - and a shot after all at a place in the knockout stages in Colombo.