West Indies face an uphill task to win the 1st Test at the Sir Vivian Richards Stadium after Pathum Nissanka scored a debut hundred for Sri Lanka.
The 22-year-old scored 103 off 252 balls and featured in a partnership of 179 with Niroshan Dickwella (96) to power Sri Lanka to 476 all out.
West Indies, chasing a mammoth 375 for victory, lost John Campbell for 11 to Vishwa Fernando late in the day’s play.
The home team, which had a 102-run lead on the first innings, is now 341 runs away from winning the match.
Sri Lanka was in a promising position at 255/4 but lost Dhananjaya Da Silva (50) early to Alzarri Joseph, bowling with the new ball.
Nissanka was joined by Dickwella and their 6th wicket stand of 179 came off 52.4 overs.
The debutant Nissanka fell just after getting his maiden Test hundred, but his 252-ball knock helped turn the tide for the visitors.
Dickwella passed his Test-best of 92 but fell four runs short of what would have been his maiden Test ton.
Cornwall, who took the wicket of Nissanka took two more wickets to end with figures of 3/137.
Kemar Roach had 3/74 as Sri Lanka collapsed from 438/5 to 476 all out. Their last five wickets falling in the space of 38 runs.
Chasing 375 for victory, West Indies lost Campbell early but captain Kraigg Brathwaite (8 not out) and Nkrumah Bonner (16 not out) played out the rest of the day without further loss.
Summarized scores: Sri Lanka 169 (Thirimanne 70; Holder 5/27) and 476 (Nissanka 103, Dickwella 96, Fernando 91; Mayers Cornwall 3/137, 2/24) vs West Indies 271 (Cornwall 61; Lakmal 5/47) and 34/1 (Bonner 15*; Fernando 1/21). West Indies need 341 runs for victory