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.
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.