Indian spinners Ravichandran Ashwin and Ravindra Jadeja struck late to reduce Sri Lanka to 356-9 at stumps on Day Three of the third and final Test here at the Feroz Shah Kotla Stadium, on 4 December.
Resuming at an overnight score of 131-3, Sri Lanka skipper Dinesh Chandimal (unbeaten at 147) and Angelo Mathews (111) tested the Indian bowling attack for the first time in the series by smashing blistering centuries.
The duo went on to share a huge 181-run stand for the fourth wicket to help the visitors cut out a respectable figure and guide Lanka to 270-4 at tea of the third day.
However, Indian bowlers hit back later in the day to reduce the visitors to 356-9 at stumps, still trailing the hosts by 180 runs.
Meanwhile, Dilruwan Perera fell just eight runs short and was dismissed after contributing crucial 42 runs to his side's innings.
For India, Ashwin was the pick of the bowlers as he bagged three wickets, including the crucial wicket of Mathews to break his partnership with Chandimal.
Jadeja, Mohammed Shami and Ishant Sharma all contributed with two wickets each.
Indian skipper Virat Kohli batted for nearly seven and half hours to notch his career-best knock of 243 runs before he was forced to declare the innings 536-7 after Sri Lankan players halted Day Two play for 26 minutes, citing uneasiness due to poor air quality caused by smog in the national capital.