Man of the match
Vaas, named man of the match, took 8-109 overall and scored a half century.
West Indies captain Chris Gayle, who dropped himself down the order after a first-innings duck, provided stern resistance at the end with an unbeaten 51 in three and a quarter hours.
Dwayne Bravo top scored with 83 and Ramnaresh Sarwan scored a confident 72.
The right-handers began the day well and made Sri Lanka wait until 20 minutes before lunch for the first breakthrough.
Bravo, after cracking 10 fours and a six in just over three hours, drove a return catch to wickets world record-holder Muralitharan.
The home team lunched at 170-2 but things went badly in the second session.
Marlon Samuels departed quickly for 10 on 171-3 as Vaas struck for the first time for the day, wicketkeeper Kumar Sangakkara hauling in a tentative stroke.
Vaas soon landed another crucial blow when Shivnarine Chanderpaul, a veteran of 108 Tests, was bowled off the inside edge for three at 178-4.
Sarwan and Gayle added 34 to stall the visitors briefly but Thushara made his mark when he gained a leg before verdict against Sarwan.
Sarwan struck four fours in a composed knock that spanned 206 balls and 278 minutes. He appeared unlucky to be given out by umpire Billy Bowden.
Muralitharan gave the Sri Lankans a big lift in the final over before tea when Ryan Hinds swept at a ball wide of leg stump on 10 and provided a catch to Sangakkara at 229-6.
Thushara removed Denesh Ramdin for 1 just after the break and the Sri Lankans sensed a comfortable win at 231-7 with 30 overs remaining.
But Gayle shepherded the lower order to give West Indies hope.
Sulieman Benn was leg before to Muralitharan's doosra but Taylor offered strong defiance with his fellow Jamaican.
He and Gayle spent close to an hour, adding 47 for the ninth wicket, before Vaas returned with the second new ball and sealed the victory.
Taylor spent 42 balls in compiling 12 before he fended a short ball to second slip.
Gayle and last-man Daren Powell were left with 10.5 overs to negotiate but Powell could not last.