The 22-year-old Nissanka and wicketkeeper Niroshan Dickwella spent most of Wednesday at the crease in a 179-run partnership before Sri Lanka were bowled out for 476.
In reply, the West Indies were 34-1 at the close after losing John Campbell for 11 with an uphill task facing them on a wearing pitch on the final day.
Captain Kraigg Brathwaite (eight not out) and Nkrumah Bonner (15 not out) will resume on Thursday.
Nissanka belied his lack of experience with a patient innings while Dickwella fell four runs short of a maiden Test ton as Sri Lanka fought back after a 102-run first-innings deficit to take charge of the Test at the Sir Vivian Richards Stadium.
STUMPS: Day 5 will be do or die for the #MenInMaroon!Let’s go boys! 👏👏 #WIvSL https://t.co/QRISk7cDuz
— Windies Cricket (@windiescricket) 1616622517000
The West Indies did get the day off to a perfect start as Alzarri Joseph castled Dhananjaya de Silva with the fifth ball of the morning, but not before De Silva had gone to his half century with a boundary.
It proved but a brief moment of celebration for the hosts, however, as the visitors dug in with Nissanka reaching his century, off 240 balls, just before tea.
The Windies had to wait for more than 50 overs for their next wicket as Nissanka holed out for 103 and Dickwella followed seven overs later, bowled by Kemar Roach agonisingly close to his milestone.
Sri Lanka’s last three wickets fell for six runs to the relief of an exhausted home team, who spent almost two full days in the field.
If the West Indies are to reach the target, it would be their third-highest successful chase after scoring 395-7 against Bangladesh in Chattogram last month and the 418 runs they amassed to beat Australia in 2003.