Investigators have recovered the "black box" flight recorders from an Air India Express plane that crashed in southern India killing at least 18 people, the country's aviation minister has said.

The plane carrying 190 people crash-landed during bad weather Friday night and tore in two, injuring dozens of passengers.

The Boeing 737, on a special flight from Dubai to bring back Indians stranded by the coronavirus pandemic, overshot the runway at Kozhikode in Kerala state, plunged down an embankment and broke up.

"Fuel had leaked out so it was a miracle that the plane did not catch fire, the toll could have been much higher," one senior emergency official at the scene said.

Aviation minister Hardeep Singh Puri has visited the site and announced that the flight data and cockpit voice recorders had been found, which will help the investigation into the cause of the crash. 

The Aircraft Accident Investigation Bureau was conducting the probe, he said.

Kozhikode is considered a tricky airport as it has a table-top runway with a steep drop at one end.

Kerala has been hit by severe floods in recent days and heavy rains had been falling for several hours at Kozhikode as the jet landed.

Mr Puri put the latest death toll at 18, while authorities said 22 people were in critical condition in hospital.
The fatalities included the two pilots as well as four children.

Indian media quoted air traffic control officials and a flight tracker website as showing that the Boeing 737 twice circled and started to land before it crashed at the third attempt.

The jet repeatedly jumped up and down in buffeting winds before the landing, survivors told Indian television.

Local taxi drivers and traders joined airport rescue staff to help free people from the wreckage in the dark and wet.

Several people on board had to be cut out with special equipment. It took three hours to clear all the injured and bodies, officials said.

Taxis ferried many of the injured to hospitals.

"Locals rushed to the spot after hearing the noise," one rescue worker said. "People came in cars, messages were being sent on WhatsApp... that people were needed to help.

"At first, people took the injured to the hospitals in their cars. Then the emergency services took over."

One of the infants died in a car before the child could receive treatment.

The flight was one of hundreds in recent months to bring home tens of thousands of Indians stranded abroad by the coronavirus pandemic, many of them in Gulf countries.

Kerala's health minister K K Shailaja asked all those involved in the rescue to go into isolation because of the risk of catching the coronavirus from passengers. 

According to flight documents seen by AFP, 15 of those on board had lost their jobs and 12 were returning for a medical emergency. Two were coming back to be married.

Prime Minister Narendra Modi tweeted his condolences.

"My thoughts are with those who lost their loved ones," Mr Modi said.

Pakistani Prime Minister Imran Khan said he was saddened by the "loss of innocent lives".

In June, a Pakistan International Airlines flight ploughed into a crowded Karachi neighbourhood, killing 97 people aboard and a child on the ground.

The last major plane crash in India was in 2010 when an Air India Express Boeing 737-800 from Dubai to Mangalore overshot the runway, killing 158 people.