Captain and his predecessor led the fight back for the visitors, although dangerous levels of air pollution continue to raise concerns.
Chandimal and Mathews respond for Sri Lanka as Delhi pollution dominates final Test
Captain 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 on Monday.
The visitors were 356-9 when bad light stopped play with Chandimal, on 147, and Lakshan Sandakan on 0, 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.
- India v Sri Lanka Day 2: Kohli and Delhi pollution set Sri Lanka back in final Test
- India v Sri Lanka Day 1: Massive Vijay-Kohli stand puts India in front seat in Delhi
- The Ashes: England mount fight back under lights but Australia remain in command of Adelaide Test
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 conditions at the Feroz Shah Kotla Stadium.
The duo braved the toxic smog for more than 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 Sharma. His last ton had also come against India at Galle.
The former captain played positive cricket during his 268-ball stay that comprised 11 fours and two sixes. He fell to Ashwin's off-spin a little ahead of tea.
Sadeera Samarawickrama, who dropped down the order after taking a hit on his helmet on Day 1, put up some resistance with a 33-run knock before being caught behind off Sharma.
Ashwin soon combined with the fast bowlers to tear into the Sri Lanka 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 on Monday, with concentration of the smallest and most harmful airborne pollutants 18 times the World Health Organization's safe level, just before the players took lunch.
On 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.