Samaraweera hit the top score of 125, as Sri Lanka, trailing by 16 runs on first innings, were dismissed for 268 in their second innings just before the scheduled close on the third day at Queen's Park Oval to leave West Indies two whole days to chase 253 for victory.
Samaraweera reached his ton when he sliced Fidel Edwards to the third man boundary for the 15th of his 18 boundaries that came from 199 balls in close to five hours.
But Samaraweera was fortunate that umpire Billy Bowden ruled a palpable lbw verdict not out, when Dwyane Bravo deceived him with a well-pitched delivery that moved back from outside the off-stump and struck him plumb in front.
When Samaraweera arrived at the crease, Sri Lanka were in deep trouble on 32 for three, and they soon crashed to 99 for six, with West Indies contemplating a victory inside three days.
But Vaas joined Samaraweera, and they spent just over three hours repairing the damage with a stand of 138.
Vaas scored a valuable 45 before h