The accident occurred off the town of Real about 70 kilometres east of Manila as the boat headed from the port towards the remote island of Polillo in rough weather, coastguard spokesman Armand Balilo told a news conference.
"We have heard (there were) casualties, but we're still validating," he said, adding that rescue helicopters and sea vessels were heading to the site.
"We believe the weather was a big factor" in the accident, he said, adding nearby boats had already rescued some of the 251 people on board the vessel, which he did not name.
However, Balilo said the vessel was allowed to sail as there were no storm warnings at or around Real or Polillo, east of the main island of Luzon.
More From This Section
The boat was authorised to carry 286 people, he added.
The government has advised Filipinos planning to return to their home provinces for Christmas to do so earlier than usual to avoid heavy weather forecast to hit ahead of the holidays.
The Philippines, an archipelago of more than 7,000 islands on the Pacific typhoon belt, is plagued by poor sea transport, with badly regulated boats and ships providing the backbone for the system prone to overcrowding and accidents.