Asked to bat first, Sri Lanka made 215-3 in 20 overs with Dilshan smashing 56 off 37 deliveries.
West Indies was bowled out for 185 with a ball to spare. Andre Fletcher hit six sixes and three fours for his 25 balls 57 but the Sri Lankan bowlers took timely wickets to prevent an upset.
Lasith Malinga broke through for Sri Lanka in the second ball of the innings, bowling out Johnson Charles without a run on the board.
Senanayake finished with 4-46, surpassing his previous best of 3-14 against South Africa in 2013. Marlon Samuels became Senanayake's first victim when he was caught by Milinda Siriwardana for 10 runs.
An aggressive 48-run stand off 19 deliveries followed between Fletcher and Andre Russell but left-arm spinner Siriwardana bowled out Russell for 16.
Dwayne Bravo and Kieron Pollard shared 51 runs for the fifth wicket. But after Bravo's dismissal for 24, West Indies lost a flurry of wickets.
Earlier, Sri Lanka's top order rallied around Dilshan after being asked to bat first by West Indies captain Darren Sammy.
Sri Lankan openers Dilshan and Kusal Perera got off to an aggressive start and scored 91 runs for the first wicket off just 60 balls.
The second and final match will be played in Colombo on tomorrow, a day before the schedule because of a national day of mourning in Sri Lanka.