An Air India Express flight from Dubai has crash landed at Calicut Airport after overshooting the runway in heavy rain, killing two.
Local TV channels say the fuselage of the Boeing-737 broke in to two pieces on impact.
At least 16 people have died, including the pilot, according to local police, with at least 15 critically injured. At least four are still stuck in the wreckage.
"We have at least 89 people, many of them with serious injuries, admitted at different Kozhikode hospitals. The ambulances are still coming in," said Sujith Das, a senior police official.
"We have been told that all those who have survived the crash also have some form of injuries."
Calicut Airport, also known as Kozikhode International Airport, is located in the south Indian state of Kerala.
"As per the initial reports rescue operations are on and passengers are being taken to hospital for medical care," the civil aviation ministry said in the statement. There was no fire on board, it said.
Rajiv Jain, a spokesman for the Civil Aviation Ministry, said no fire was reported on the Boeing 737 aircraft after it landed.
The NDTV news channel said 30-40 people were hospitalised and other passengers have been evacuated from the aircraft.
Mr Jain said there were 174 adult passengers, 10 infants, two pilots and five cabin crew on board the aircraft.
The flight was a repatriation flight operated by the government to bring citizens home due to the coronaviurs outbreak.
Amit Shah, the Indian home minister, said in a tweet that he was "distressed to learn about the tragic accident of Air India Express aircraft at Kozhikode."
The Directorate General of Civil Aviation (DCGA) said the plane fell in to a valley and broke in to two after skidding off the end of the runway.
The incident happened at around 19:40 local time (15:10GMT).
Narendra Modi, the Indian Prime Minister, tweeted: "Pained by the plane accident in Kozhikode. My thoughts are with those who lost their loved ones. May the injured recover at the earliest."