The net is closing in on Sri Lanka's hopes of saving the series with India after they finished day four 31-3 in pursuit of a mammoth target of 410.
India quickly mopped up the final Sri Lankan first-innings wicket before piling on the runs once again, Virat Kohli racking up another half-century before declaring on 246-5.
That gave India around half the evening session to begin extracting the tourists and Ravindra Jadeja's two wickets led good progress towards a 2-0 series win, leaving Sri Lanka battling to avoid another heavy defeat in the third and final Test.
Sri Lanka skipper Dinesh Chandimal brought up his fourth 150+ score in the first over of the day, adding another three boundaries before Ishant Sharma lured him into a thick edge to Shikhar Dhawan at third man.
His dismissal - for a career-best 164 - signalled the end of Sri Lanka's rebuttal to India's 536-7 declared and, after a shaky start, the hosts quickly built on that advantage.
-- ICC (@ICC) December 5, 2017
Murali Vijay's hopes of back-to-back hundreds disappeared in the third over as he edged Suranga Lakmal to Niroshan Dickwella for nine, and Ajinkya Rahane was not far behind him.
The number three has endured a miserable series, which he finishes with a paltry 17 runs in five innings, 10 of which came in this knock.
If that gave Sri Lanka a glimmer of hope, Dhawan and Cheteshwar Pujara soon extinguished it with a 77-run partnership for the third wicket.
Both men played with great fluidity and Dhawan, in particular, peppered the boundaries at the Feroz Shah Kotla Ground - including a huge six over long-off that took him past 2000 Test runs.
A fifth fifty came for the birthday boy, but Pujara was not so lucky as he perished one short of the milestone, Angelo Mathews taking a superb catch at slip.
Dhawan fell just before tea for 67 but Kohli and Rohit Sharma picked up where he left off to push India's lead past 400.
Kohli's 50 off 58 balls takes his tally to 610 runs in the series at 152.50 - not bad after starting the first match with a duck.
Another Indian half-century prompted Kohli's declaration, Rohit (50 not out) given the chance to lift his bat before the bowlers set about Sri Lanka's batsmen with some fierce deliveries.
Sadeera Samarawickrama (5) felt the brunt of Mohammed Shami, a second-successive bouncer clipping glove and shoulder on its way to Rahane in the cordon.
Spin quickly took over and Jadeja removed Dimuth Karunaratne (13) and nightwatchman Lakmal (0) before the close, leaving all the responsibility on first-innings centurions Mathews and Chandimal if they are to avoid a 2-0 series loss.