The Sri Lankan cricket side grabbed three big wickets in the closing session to throw the second Test against India wide open on the third day in Galle before slipping to 200 for four in their second innings at stumps.
The tourists are 237 ahead with six wickets in hand.
Sourav Ganguly and Venkatsai Laxman had yet to open their accounts when bad light stopped play.
India appeared to have seized the initiative after attacking knocks from Gautam Gambhir with 74, Virender Sehwag 50, Rahul Dravid 44 and Sachin Tendulkar(31 before losing their way.
Sri Lanka were bowled out for 292 in their first innings on the stroke of lunch in reply to India's 329, with skipper Mahela Jayawardene top-scoring with a stylish 86.