The special flight had been carrying Indians stranded abroad by the coronavirus pandemic.
Eighteen people were killed and more than 120 injured, at least 15 of them critically, said Abdul Karim, a senior police officer in southern Kerala state.
The dead included both pilots of the Air India Express flight, the airline said in a statement, adding that the four cabin crew were safe.
The two-year-old Boeing 737-800 was flying from Dubai to Kozhikode, also called Calicut, in Kerala. There were 174 adult passengers, 10 infants, two pilots and four cabin crew on board.
In a telephone interview from his hospital bed, Renjith Panangad, a plumber who was returning home for the first time in three years after losing his job at a construction company in Dubai, said the plane swayed before the crash and everything went dark.
He said he followed other passengers who crawled their way out of the fuselage through the emergency exit.
“A lot of passengers were bleeding,” said Mr Panangad, who escaped without major injuries. “I still can’t comprehend what happened. As I am trying to recall what happened, my body is shivering.”
He said the pilot made a regular announcement before landing, and moments after the plane hit the runway, it nosedived.
“There was a big noise during the impact and people started screaming,” he said.
As the rain stopped on Saturday morning, searchers recovered a flight data recorder as the Aircraft Accident Investigation Bureau started work on the wreckage.
Air India Express said its teams also reached Calicut to support and assist families of the victims.
The wreckage of the plane was resting below a flat hilltop, its nose crashed through a wall.
The aircraft’s fuselage was split in two and cables dangled from the wreckage, with luggage and seats were strewn around.
A similar tragedy was narrowly avoided at the same airport a year ago, when an Air India Express flight suffered a tail strike upon landing. None of the 180 passengers on that flight was injured.
Kozhikode’s 9,350ft (2,850m) runway is on a flat hilltop with deep gorges on either side, ending in a 112ft (34m) drop.
Civil Aviation Minister Hardeep S Puri said in a statement that the flight “overshot the runway in rainy conditions and went down” the slope, breaking into two pieces upon impact.
Questions for investigators will involve not only the aircraft, weather and pilots but also the runway itself. Its end safety area was expanded in 2018 to accommodate wide-body aircraft.
The runway end safety area meets United Nations international civil aviation requirements, but the UN agency recommends a buffer that is 492ft (150m) longer than that at Kozhikode airport, according to Harro Ranter, chief executive of the Aviation Safety Network online database.
The Press Trust of India news agency reported that the country’s aviation regulator had sought an explanation from the director of Kozhikode airport in 2019 on finding “various critical safety lapses”, which included cracks in the runway, water stagnation and excessive rubber deposits.
Officials from the aviation regulator said on Saturday that it is too early to tell whether the accident was a result of a technical fault or human error.
Dubai-based aviation consultant Mark Martin said annual monsoon conditions appeared to be a factor, though it was too early to be certain of the cause.
“Low visibility, wet runway, low cloud base, all leading to very poor braking action is what looks like led to where we are at the moment with this crash,” he said, calling for the European Aviation Safety Agency and the US Federal Aviation Administration to assist with the Indian government’s investigation.
Kerala state health minister KK Shailaja asked local residents who joined the rescue effort to go into quarantine as a precautionary measure. The survivors were being tested for Covid-19, officials said.
The Air India Express flight was part of the Indian government’s special repatriation mission to take Indian citizens back to the country, officials said. All of the passengers were returning from the Gulf region.
The passenger manifest of the flight, a copy of which was seen by the Associated Press, showed that a large number of passengers were stranded tourists and workers reuniting with their families after months away.
Pained by the plane accident in Kozhikode. My thoughts are with those who lost their loved ones. May the injured recover at the earliest. Spoke to Kerala CM @vijayanpinarayi Ji regarding the situation. Authorities are at the spot, providing all assistance to the affected.
— Narendra Modi (@narendramodi) August 7, 2020
Prime Minister Narendra Modi tweeted that he was “pained by the plane accident in Kozhikode”, and that he had spoken to Kerala’s top elected official.
Air India Express is a subsidiary of Air India.
The worst air disaster in India was on November 12 1996, when a Saudi Arabian Airlines flight collided mid-air with a Kazakhastan Airlines flight near Charki Dadri in Haryana state, killing all 349 on board the two planes.