The train, which was travelling between the Gulf of Mexico and the Pacific Ocean, was carrying 241 passengers and nine crew members.
A total of 98 were injured, of whom 36 were being treated in hospital, the navy said.
The train derailed as it rounded a bend near the town of Nizanda, officials said. Mexico's Attorney General confirmed an investigation was under way.
Mexican President Claudia Sheinbaum said five of those injured were in a serious condition.
She said top level officials, including the Secretary of the Navy, were travelling to the site of the crash.
Photos from the site of the crash showed rescue workers helping passengers alight the train, which had fallen off the rail tracks and partly tilted over the side of a cliff.
The Interoceanic train, which connects the Pacific port of Salina Cruz with Coatzacoalcos on the Gulf Coast, had two locomotives and four passenger cars, the navy said. Mexico's navy operates the country's railway network.