New Delhi: India set Sri Lanka a daunting 410-run victory target and dented the tourists' top order to maintain their iron grip on the third and final Test on Tuesday.
Having secured a handy 163-run first-innings lead, India declared on 246 for five about 45 minutes after tea and Sri Lanka were reeling on 31 for three when bad light stopped play with the tourists still needing 379 runs to level the series.
Dhananjaya de Silva was batting on 13 with first-innings centurion Angelo Mathews yet to open his account at the other end.
Mohammed Shami dismissed opener Sadeera Samarawickrama for five with a vicious bouncer before Ravindra Jadeja struck twice in the same over, dismissing Dimuth Karunaratne caught behind for 13 and bowling nightwatchman Suranga Lakmal for a duck.
Earlier, Dinesh Chandimal made a career-best 164 to help Sri Lanka post 373 all out, their highest total in the series.
Lakmal denied India a strong start to their second innings, dismissing Murali Vijay for nine.
The paceman was subsequently seen vomiting and temporarily left the field as the Delhi smog continued to affect the match.
Ajinkya Rahane has been the lone batsman in India's top six without a fifty in the series and was sent in ahead of Cheteshwar Pujara in a bid to help him rediscover his form ahead of the tour of South Africa.
The move, however, did not work.
The right-hander survived two reviews and scored only 10 runs before trying to hit his way out of trouble and holing out in the deep off Dilruwan Perera.
Shikhar Dhawan initially looked subdued but the left-hander soon accelerated, stepping out to hit Lakshan Sandakan over his head for a huge six.
The left-arm wrist-spinner had the last laugh, though, as he lured Dhawan into charging out to play a similar shot only to be stumped for 67.
Pujara (49) fell short of his fifty but Virat Kohli (50) and Rohit Sharma (50 not out) batted with characteristic ease against the jaded Sri Lankans to keep India in complete control of the match.
"We are in a good position now. They are three wickets down, so they would be under lot of pressure tomorrow," Dhawan told reporters.
The opener praised pace duo Shami and Ishant Sharma for troubling the Sri Lankan batsmen despite lack of help from the pitch.
"They gave everything. They bowled really good pace, I could feel it from slip. It speaks volumes about their mindset, because there was little for them in this flat track."
India 1st innings: 536 for 7 decl
(V. Kohli 243, M. Vijay 155, R. Sharma 65; L. Sandakan 4-167)
Sri Lanka 1st innings
D. Karunaratne c Saha b Shami 0
D. Perera lbw Jadeja 42
D. de Silva lbw I. Sharma 1
Angelo Mathews c Saha b R. Ashwin 111
Dinesh Chandimal c S. Dhawan b I. Sharma 164
S. Samarawickrama c Saha b I. Sharma 33
Roshen Silva c S. Dhawan b R. Ashwin 0
Niroshan Dickwella b R. Ashwin 0
Suranga Lakmal c Saha b Shami 5
Lahiru Gamage lbw Jadeja 1
Lakshan Sandakan (not out) 0
Extras (b-4, lb-5, nb-2, pen-5) 16
Total (all out, 135.3 overs) 373
Fall of wickets: 1-0, 2-14, 3-75, 4-256, 5-317, 6-318, 7-322, 8-331, 9-343.
Bowling: M. Shami 26-6-85-2 (nb-1); I. Sharma 29.3-7-98-3; R. Jadeja 45-13-86-2 (nb-1); R. Ashwin 35-8-90-3.
India 2nd innings
M. Vijay c Dickwella b Lakmal 9
S. Dhawan st Dickwella b Sandakan 67
A. Rahane c Sandakan b D. Perera 10
C. Pujara c Mathews b D. de Silva 49
V. Kohli c Lakmal b Gamage 50
R. Sharma (not out) 50
R. Jadeja (not out) 4
Extras (b-1, lb-2, nb-3, w-1) 7
Total (5 wkts decl, 52.2 overs) 246
Fall of wickets: 1-10, 2-29, 3-106, 4-144, 5-234.
Did not bat: R. Ashwin, W. Saha, I. Sharma, M. Shami
Bowling: Suranga Lakmal 14-3-60-1 (w-1); Lahiru Gamage 12.2-1-48-1 (nb-3); Dilruwan Perera 11-0-54-1; Dhananjaya de Silva 5-0-31-1; Lakshan Sandakan 10-0-50-1.
Sri Lanka 2nd innings
Dimuth Karunaratne c Saha b Jadeja 13
Sadeera Samarawickrama c Rahane b Shami 5
Dhananjaya de Silva (not out) 13
Suranga Lakmal b Jadeja 0
Angelo Mathews (not out) 0
Total (3 wkts, 16 overs) 31
Fall of wickets: 1-14, 2-31, 3-31.
To bat: D. Perera, D. Chandimal, R. Silva, N. Dickwella, L. Gamage, L. Sandakan
Bowling: I. Sharma 3-0-6-0; M. Shami 3-1-8-1; R. Ashwin 5-2-12-0; R. Jadeja 5-2-5-2.
Umpires: Nigel Llong, Joel Wilson
TV umpire: Anil Chaudhary
Match referee: David Boon