The MV Mercraft 2 caught fire just before reaching the port of Real in Quezon province, about 60 kilometers (37 miles) east of the capital Manila.
It had left Polilio Island at 5 a.m. local time and made a distress call at 6:30 a.m.
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-floor passenger vessel.
Vessels are often old and overcrowded.
In 1987, around 5,000 people died in the world’s worst peacetime shipping disaster, when the overloaded passenger ferry Dona Paz collided with an oil tanker off Mindoro island south of the capital, Manila.