Shai Hope reached 1,000 Test runs for West Indies while Lahiru Kumara starred with the ball for Sri Lanka on an even opening day of the first Test in Port of Spain.
Hope was among five Windies players who failed to build on starts as they were frustrated by a Sri Lanka attack that took wickets at regular intervals.
Starting the day just four runs shy of 1,000, Hope reached 44 before being undone by 21-year-old fast bowler Kumara (3-57), who also claimed the key wickets of Kieran Powell (38) and Jason Holder (40).
Holder's stand of 90 with Shane Dowrich, who ended the day unbeaten on 46, helped ensure only one wicket fell in the final session as the Windies closed on 246-6.
Kraigg Brathwaite (3) and Devon Smith (7) fell cheaply before Kumara drew a faint inside edge from Powell with a brilliant late swinging delivery to flatten leg stump.
Hope mounted something of a recovery from 80-3 before gloving a short Kumara ball behind to Niroshan Dickwella and when Roston Chase (38) fell to Rangana Herath the hosts looked in trouble on 147-5.
Dowrich and captain Holder slowly turned things around with a hard-fought stand, which was ended when Kumara drew a thin edge from Holder as he attempted to drive at a full delivery outside off.
No further inroads were made, however, Devendra Bishoo producing a gritty show of defiance as he faced 32 balls without scoring, the pressure now firmly on Dowrich to be the one to build on a start and push the Windies to a respectable first-innings total.