The FlyDubai Boeing 737-800, coming from Dubai, missed the runway as it attempted to land at 03:50 local time (00:50 GMT) on Saturday.
It is not clear what caused the crash but poor visibility and high winds are being considered as a factor.
CCTV footage showed an explosion and a huge flash after the plane crashed.
“The aircraft hit the ground and broke into pieces,” the Investigative Committee of Russia said on its website.
Reports say the plane abandoned its initial attempt to land and circled for two hours before crashing at the second attempt.
It came down about 250m (800ft) short of the start of the runway in Rostov, some 950km (600 miles) south of Moscow.
Most of the passengers on board flight FZ981 were Russian, the regional governor said. Another official said three foreigners were on the passenger list, according to Reuters.
Six of the crew were non-Russians, a Russian emergency ministry statement said, the news agency reported.
About 700 rescue workers were sent to the site of the crash and the fire was extinguished, media reports said.
A search is under way for the plane’s flight recorders and an investigation has been opened into the cause of the crash.
Other flights have been diverted away from the airport.