New Delhi recorded its coldest day in more than a century, with pollution levels peaking 10 times higher than safe levels.
India's capital dropped to 9.4C on Monday, making it the coldest day in 119 years.
The previous lowest maximum was 9.8C on January 2, 2013, according to the India Meteorological Department.
An opaque and chilly smog blanketed northern India on Monday, as low temperatures collided with hazardous levels of air pollution.
The air quality index (AQI) topped the 500 mark, 10 times what the World Health Organization considers safe.
The pollution has made the air colder, mixing with moisture under low wind conditions to create low-altitude clouds stretching from eastern Pakistan to India's eastern state of Bihar, according to the IMD.
Across many cities in the region, including India's capital, visibility was reduced to 200 metres.
More than 650 flights were delayed and 40 cancelled and six people were killed when their car skidded off the road and tipped into a canal in a suburb of New Delhi, reportedly because of the poor visibility.
The lowest minimum temperature dropped to 1C as street vendors, auto rickshaw drivers and people who sleep on the streets of the capital wrapped themselves in hooded sweaters and blankets, and warmed their hands over small bonfires
The cold and fog were expected to continue through New Year's Day, government weather data showed.