West Indies opener Sewnarine Chattergoon and vice-captain Ramnaresh Sarwan dug-in before rain prompted an early tea on the second day of the second and final Test on Friday at the Queen's Park Oval.
At the break, West Indies, replying to Sri Lanka's first innings total of 278, reached 133 for one with Chattergoon not out on 45 and Sarwan not out on 33.
Sri Lanka had early success after lunch, when they removed West Indies captain Chris Gayle for 45, but Chattergoon and compatriot Sarwan consolidated and added an unbroken 75 before the rain arrived about half-hour before tea.
Gayle was caught at gully by Michael Vandort when he flirted with a delivery of no great merit from Thilan Thushara outside the off-stump.
But the visitors had no further success, as Sarwan came to the crease, played positively, and Chattergoon, playing compactly in his first Test innings, and did not offer the Sri Lankans a chance to separate them.
Sri Lanka's bowlers exploited the lively pitch and heavy conditions in the 40 minutes available to them before lunch, but Gayle and Chattergoon held on defiantly to carry the home team to 49 without loss at the break.
Sri Lanka twice had a chance to remove Gayle.
On 24, Muttiah Muralitharan did well to fly to his left to try and clutch a powerful cross-batted stroke, but dropped the West Indies captain at mid-on off Ishara Amerasinghe, and on 31, Amerasinghe failed to get close to another chance off Thushara when the left-handed opener swung at a short delivery.
Gayle responded to the challenge with a couple of meaty boundaries.
Sri Lanka had been dismissed about 50 minutes before lunch, when Chamara Silva hooking at a short, rising ball from Dwayne Bravo was caught inside the deep fine leg boundary for the top score of 76.
He led a rearguard action for the Sri Lankans to help them add another 61 runs before their innings closed.
Fidel Edwards was the most successful West Indies bowler with four wickets for 84 runs from 18 overs, Daren Powell took two for 59 from 17 overs, and Jerome Taylor ended with two for 74 from 17.2 overs after he was removed from the attack for delivering a second beamer in the innings.
Silva was the recipient of the fast, full, high-pitched delivery from Taylor, after he had struck Tillakeratne Dilshan a painful blow on his right hand the previous evening with a similar delivery.
Sri Lanka had continued from their overnight total of 217 for five, and Dilshan gave them a flourishing start, when he savagely square cut a short, wide, loose delivery from Edwards over backward point for four.
But Dilshan was caught at backward square leg off the third legitimate ball of the morning from the same bowler for 62 miscuing a hook - wicketkeeper Denesh Ramdin sprinting about 30 yards from his position behind the stumps to complete the dismissal.
His dismissal saw a steady procession to and from the pavilion, and Sri Lanka wobbled to 255 for nine.
Silva however, was the man leading the charge for the Sri Lankans, and he reached his 50, when he square drove Edwards through backward point for two.
Sri Lanka's innings could have ended much earlier, had Taylor held an easy return catch, when Silva, on 70, was deceived by a slower ball and drove the ball back to the bowler.
But Taylor - inadvertently - delivered his second beamer, and Bravo, asked to complete the over, brought the Sri Lanka innings to a close after Silva and last man Amerasinghe spent close to half-hour frustrating West Indies.
Sri Lanka lead the series 1-0, after they won the opening Test at Guyana by 121 runs.
If they win the Test, Sri Lanka will confirm their first Test series win on Caribbean soil, and become the first side visiting the Caribbean to sweep a Test series of any length.