Veerasammy Permaul's five-wicket haul put Sri Lanka in trouble with the West Indies batting openers already chasing down the hosts' lead by early tea on day two of the second Test in Galle on Tuesday.
Rain interrupted play half an hour before the scheduled break in a match that has been plagued by inclement weather and bad light, with the tourists trailing by 135.
The West Indies' decision to play two left-arm spin specialists proved a masterstroke against a side heavy with right-handed batters.
Permaul and fellow left-arm spinner Jomel Warrican, who claimed 4-50, cut through the Sri Lankan order on a wicket with plenty of turn and bounce.
It was the fourth time in history that West Indies spinners claimed all 10 wickets in an innings. Off-spinner Roston Chase had claimed captain Dimuth Karunaratne on day one with Sri Lanka resuming overnight on 113.
Openers Kraigg Brathwaite and Jermaine Blackwood stood more resolute against Sri Lanka's spin attack, which had demolished the tourists' top order in their 187-run first Test loss.
Blackwood left on 44 when Praveen Jayawickrama trapped him leg before, ending a stand of 62.
Overnight batsman Pathum Nissanka had offered a couple of half chances in the morning but his luck ran out when Permaul trapped him leg before wicket for 73 off 148 deliveries.
Permaul had a second wicket in the same over when Dhananjaya de Silva was caught behind by wicketkeeper Joshua da Silva.
Debutant Charith Asalanka walked in next and got off the mark in Test cricket by reverse sweeping Permaul for four off the second ball he faced.
But Permaul soon dismissed him as Nkrumah Bonner at short leg came into action for the bat-pad catch.
Things went from bad to worse for Sri Lanka when Angelo Mathews, their most experienced batter, briefly retired with a pulled hamstring.
He returned after just under eight overs and managed to lift the team over 200, despite struggling to run between wickets, with consecutive sixes off Warrican.
He was last man dismissed, for 29, and did not come to field.
Sri Lanka lead the two-match series 1-0.