The flight was repatriating Indians stranded by the coronavirus crisis.
Prime Minister Narendra Modi said he was "pained by the plane accident".
The rescue operation at the crash site has now been completed and survivors have been taken to hospitals in Calicut and Malappuram, according to Kerala Chief Minister Pinarayi Vijayan.
Dozens of people were injured, 15 of them seriously, a senior police officer said.
Air India Express said the two pilots were among the dead.
The airline said there were 184 passengers - including 10 children and seven crew members, of whom two were pilots - on board Flight IX-1344 when it crashed at Calicut, also known as Kozhikode.
The Directorate General of Civil Aviation (DGCA) said the plane fell into a valley and broke in two after skidding off the end of the runway. No fire was reported at the time of landing, the aviation regulator said.
Images carried by Indian media show the aircraft broken in two pieces, with people searching through the wreckage.
The aircraft circled the airport several times and made two attempts to land, NDTV reported, citing flight-tracking data.
In a tweet India's Civil Aviation Minister, Hardeep Singh Puri, said the aircraft "overshot the runway in rainy conditions", then plunged down a 10.6metre slope, before breaking in two, at 7.40pm local time.
He said a formal inquiry would be carried out by India's Aircraft Accident Investigation Bureau (AAIB).
The incident happened at around 7pm local time amid heavy rainfall in the region.
There have been flooding and landslides, as India's monsoon season reaches its peak.
India's prime minister tweeted to express his sympathy for "those who lost their loved ones" in the crash.
The chief Minister of Kerala, Pinarayi Vijayan, said he spoke on the phone to Modi, who told him the government would provide medical and rescue support.
Rahul Gandhi, who is an MP for a district in Kerala, said he was "shocked at the devastating news of the plane mishap in Kozhikode".
Earlier today, dozens of people were feared dead in Kerala's Idukki district after monsoon-season floods triggered a landslide.
Plane crashes have happened before during India's monsoon season, which lasts from June to September and wreaks havoc across South Asia every year.
In May 2010, 158 people died when an Air India Express flight overshot Mangalore airport runway and crashed. A similar incident happened in July 2019 in Mangalore, prompting an inquiry.