At least seven people were killed and scores plucked to safety in the Philippines on Monday after a fire ripped through a ferry and forced passengers to jump overboard, the coast guard and witnesses said.

The blaze broke out on the Mercraft 2 at around 6:30 am (2230 GMT Sunday) as it carried 134 passengers and crew from Polillo Island to Real in Quezon province on the main island of Luzon.

Seven people died and 127 were rescued, Philippine Coast Guard spokesman Commodore Armando Balilo said after the last missing were found.

The fibreglass fast craft boat, which had a 186-person capacity, was about a kilometre from Real when it caught fire.

At least seven people were killed and scores plucked to safety in the Philippines on May 23 after a fire ripped through a ferry and forced passengers to jump overboard, coast guard and witnesses say At least seven people were killed and scores plucked to safety in the Philippines on May 23 after a fire ripped through a ferry and forced passengers to jump overboard, coast guard and witnesses say Photo: Philippine Coastguard via AFP / Handout

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

Map of the Philippines locating Polillo Island, near where several people were killed when a fire ripped through a ferry on Monday. Map of the Philippines locating Polillo Island, near where several people were killed when a fire ripped through a ferry on Monday. Photo: AFP / STAFF

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," said Captain Brunette Azagra, whose passenger vessel was 500 metres from the Mercraft when the fire broke out. Two bodies were also pulled from the water, he added.

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

Twenty-four people were injured, including the captain of the ferry, according to the coast guard.

Speaking from the hospital where the injured were being treated, Real town disaster officer Ricky Poblete said the seven dead had drowned.

Photos posted on the coast guard's Facebook page showed a survivor lying 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.