The transporter was carrying more than 90 people, mostly troops, when it overshot the runway on Jolo island.
The dead are mainly military personnel, but three civilians on the ground were also killed, the defence ministry said.
Rescue workers scoured the wreckage of the Lockheed C130 Hercules in a wood near several buildings.
The aircraft burst into flames on crashing, sending a large black cloud into the air.
Several dozen people were injured, and five are still missing, the military said. A nearby military hospital treated survivors.
The plane, which came down at 11:30 local time (03:30 GMT) a few kilometres from the town of Jolo, was carrying troops from Cagayan de Oro, on the southern island of Mindanao.
"It missed the runway, trying to regain power but it didn't make it," armed forces chief Gen Sobejana told reporters.
A statement from the regional military force, Joint Task Force Sulu, said "a number of soldiers were seen jumping out of the aircraft before it hit the ground, sparing them from the explosion caused by the crash".
No details about how they managed to get out of the plane or their condition were given.
The soldiers were among reinforcements sent to the southern Philippines to combat Islamist militants such as the Abu Sayyaf group.
Officials said there was no sign that the aircraft had been attacked, and an investigation would start once the rescue operation was complete.
Many of those on board had only recently completed basic military training, AFP reports.
The plane, previously in service with the US Air Force, was handed to the Philippines in January.
It was the first of two used Hercules to be delivered by the US under a defence co-operation scheme.
The aircraft first flew in 1988, according to Aviation Safety Network.