Seven people died and 120 have been rescued so far, Philippine Coast Guard spokesman Commodore Armando Balilo said.
Another seven were missing and a search operation was ongoing.
The boat had a 186-person capacity.
“We heard an explosion,” said Kycel Pineda, 18, who was travelling on another ferry.
“When we saw the boat, it was already engulfed by fire and passengers were already floating in the sea,” the high school student added.
Thick black smoke billowed from the Mercraft as flames tore through the entire vessel, photos shared by the coast guard showed.
People with life rings and life vests were in the water. Some were rescued by other ferries or clambered into inflatable boats.
The fire appears to have started in the engine room, Balilo said. A team of investigators was preparing to look into the cause.
“We were able to rescue 40 survivors. We have two fatalities,” said Captain Brunette Azagra, whose passenger vessel was 500 metres from the Mercraft when the fire broke out.
“They were lucky because we also came from Polillo. They overtook us, but we were just nearby,” Azagra told a local radio station, describing sea conditions as “quite good”.
At least 23 people were injured, including the captain of the ferry, according to the coast guard.
The ship was around seven kilometres (four miles) away from port, Real town disaster officer Ricky Poblete said.
Speaking from the hospital where the injured were being treated, Poblete said the seven dead had drowned.
Photos posted on the coast guard’s Facebook page showed a survivor laying on a stretcher being carried off a ferry.
Another lay on the deck of a boat and appeared to be receiving treatment.
The Philippines, an archipelago of more than 7,000 islands, is plagued by poor sea transport, with its badly regulated boats and ships prone to overcrowding and accidents.
The fire on the Mercraft was under control and the burned-out wreckage towed to shore.
Credit belongs to : www.manilastandard.net