The FlyDubai Boeing 737-800 flight FZ981 missed the runway by 250m (800ft) as it attempted to land at 5.30am local time, officials say.
"The aircraft hit the ground and broke into pieces," the Investigative Committee of Russia said on its website.
Officials say the plane abandoned a first attempt to land at the airport and circled for two hours before trying a second time.
Investigators have not yet made an official statement about the cause of the crash, but strong winds and poor visibility were likely to have played a role.
Most of the passengers on board the flight were Russian, Reuters reported the regional governor confirmed, although another official said three foreigners were on the passenger list, while six of the crew were non-Russians.
Rostov-on-Don airport has been closed and flights are being diverted.