Virat Kohli and pollution added to Sri Lanka's misery as India declared their first innings on 536-7 before the tourists ended Day 2 of the third Test on 131-3 in smog-hit Delhi on Sunday.
Kohli hit a career-best 243 - his sixth double ton as captain - even as the opposition players, who wore masks while fielding, complained of bad air at Feroz Shah Kotla.
Sri Lankan players forced play to be halted three times, a total of about 20 minutes in the second session, while two of their fast bowlers returned to the pavilion.
It prompted Kohli to declare as Sri Lanka were falling short of fielders with opening batsman Sadeera Samarawickrama also unable to field due to an injury on Day 1.
Sri Lanka were 18-2 at tea, trailing the hosts by 518 runs. Dilruwan Perera, on 12, and Angelo Mathews, on 4, were battling to survive an inspired Indian pace attack.
Mohammed Shami struck on the very first delivery of the innings with left-handed opener Dimuth Karunaratne going for a first-ball duck.
Lanky paceman Ishant Sharma also joined forces to trap Dhananjaya de Silva lbw for one as the visitors slipped further with a batsman short.
But it was Kohli who put India on top after recording his second successive Test century to pulverise the Sri Lankan attack.
Kohli, who started the day on 156, combined with overnight partner Rohit Sharma, who scored 65, to put on 135 runs for the fifth wicket.
He was finally trapped lbw off left-arm wrist spinner Lakshan Sandakan, who claimed four wickets in the innings.
India lead the series 1-0 and need only a draw for a record-equalling ninth successive Test series triumph. England and Australia are the other sides to have achieved the feat.
Kohli battled through back pain
Massive Vijay-Kohli stand puts India in front seat of Delhi cricket Test
Chandimal unconcerned by India's dismissive tone ahead of final Test
Comment: Kohli's criticism of BCCI a triumph for individualism in India
Many of Sri Lanka's fielders took the extraordinary step of wearing face masks when they returned from lunch on the second day after smog visibly worsened.
The Press Trust of India said it was the first time in the 140-year history of Test cricket that an international side had taken to the field in face masks.
The US embassy website Sunday showed concentrations of the smallest and most harmful airborne pollutants in Delhi hit 384 - 15 times the World Health Organisation maximum -- before returning to levels considered just "unhealthy".
Play was halted for around 20 minutes at the Feroz Shah Kotla stadium as Sri Lanka complained about the smog and the umpires consulted the match referee, team doctors and physiotherapists.
Play resumed but the visitors protested twice more, and pacemen Lahiru Gamage and Suranga Lakmal returned to the pavilion, leaving the Sri Lankans running short of fielders.
The islanders were booed by Indian fans as their opening batsmen walked to the crease.
Play is routinely suspended due to poor weather, low visibility, lightning or rain, but a stoppage as a result of pollution is almost unheard of.
"It is definitely a first of its kind," one commentator said on the official television broadcast.
Indian sports commentator Ayaz Memon said the dramatic scenes sent an "unedifying message about Delhi's pollution" and urged authorities to combat the scourge.
India's powerful cricket board was less than impressed and said it would write to its Sri Lankan counterparts about the incident.
"If 20,000 people in the stands did not have problem and the Indian team did not face any issue, I wonder why Sri Lankan team made a big fuss?" said CK Khanna, acting president of the Board of Control for Cricket in India.
Many Indian fans echoed similar frustrations online, accusing the touring side of being melodramatic.
Earlier in the day Indian bowler Kuldeep Yadav was also seen sporting a pollution mask as he brought drinks to teammates on the field.
Delhi has been ranked among the world's most polluted capital cities, with air quality worsening in winter as cooler air traps pollutants near the ground.
Doctors last month declared a public health emergency in the capital as pollution soared to 40 times the level deemed safe by the WHO, shutting down schools for days.
But that did not stop more than 30,000 runners competing in the Delhi half-marathon last month, despite dire health warnings from doctors who called for the race to be postponed.
Kohli's message to residents of Delhi
Doctors warn that competitive exercise during severe pollution can trigger asthma attacks, worsen lung conditions and increase the risk of heart attacks and strokes.
Other top-level sporting events in Delhi, such as international cricket and golf tournaments, have attracted less attention despite the hazardous levels of pollution.
Authorities in Delhi have in recent years closed power plants temporarily and experimented with taking some cars off the road but the measures have had little effect.