The ship caught fire just before reaching the port of Real in Quezon province, about 60 km (37.28 miles) east of the capital Manila. It had left Polilio Island at 5:00 am local time (2100 GMT Sunday) and made a distress call at 6:30 am
Five women and two men had died, while 120 passengers had been rescued, with 23 of them treated for injuries, the coast guard said in a statement.
Pictures shared by the coast guard showed people in life vests floating at sea awaiting rescue, while some were taken to safety by a cargo ship in the area. Fire and thick smoke engulfed the two-storey passenger vessel.
It was not immediately clear the cause of the fire, but the Philippines, an archipelago of more than 7,600 islands, has a poor record for maritime safety, with vessels often overcrowded and many vessels ageing.
In 1987, around 5,000 people died in the world's worst peacetime shipping disaster, when an overloaded passenger ferry Dona Paz collided with an oil tanker off Mindoro island south of the capital, Manila.