Skipper Dinesh Chandimal and Angelo Mathews hit defiant centuries in soaring Delhi pollution before Indian bowlers struck back late on day three of the third Test match yesterday.
The visitor were 356 for the loss of nine wickets when bad light stopped play with Chandimal, on 147, and Lakshan Sandakan on nought, at the crease. They trail by 180 runs in their first innings.
Off-spinner Ravichandran Ashwin took three wickets while Mohammed Shami, Ishant Sharma and left-arm spinner Ravindra Jadeja picked two each.
Sri Lanka flourished on the back of a 181-run fourth-wicket stand between Mathews (111) and Chandimal after they resumed the day on 131-3 in hazy condition at Feroz Shah Kotla Stadium.
The duo braved the toxic smog for over three sessions after getting together on a dramatic Sunday when Sri Lankan players wearing face masks halted play for about 20 minutes, complaining of foul air.
Mathews, who survived three dropped catches, ended his two-year century drought with a boundary off paceman Ishant. His last ton had also come against India in Galle.
The former captain played positive cricket during his 268-ball stay that was laced with 11 fours and two sixes. He fell to Ashwin's off-spin a little ahead of tea.
Sadeera Samarawickrama, who came down the order after taking a hit on his helmet on day one, put up some resistance with a 33-run knock before being caught behind off Ishant.
Ashwin soon combined with the fast bowlers to tear into the Sri Lankan lower-order in the final session after sending back debutant Roshen Silva and Niroshan Dickwella for zero.
Chandimal, who seemed a little uneasy in the morning while calling for his trainer, frustrated the Indian bowlers and helped his team avoid a follow-on situation.
Pollution levels worsened yesterday, with concentration of the smallest and most harmful airborne pollutants 18 times the World Health Organisation's safe level, just before the players took lunch.
Sunday it was 15 times the WHO limit, according to the US embassy website.
Sri Lanka, who trail 1-0 in the three-match series after their thrashing in the second game, need a win to draw the series against top-ranked India.