Forty-six passengers and crew of the wooden-hulled ferry MV Catalyn B were plucked from the water and brought to the coast guard's Manila headquarters, said coast guard spokesman Armand Balilo. The coast guard alerted all vessels in the area to look for those still missing.
A female passenger was seen being carried on a stretcher, while others were led to a clinic for a medical examination.
The 44-foot-long vessel, carrying 73 people on a journey from Manila to southwest Mindoro Island, sank shortly after the accident, Balilo said. The ferry had a capacity to carry 126 people.
All 22 crew on the fishing boat were safe and it did not sink, said Melvin Viola of the coast guard's operation centre.
The cause of the accident off Cavite province's Limbones island was not clear. No weather disturbances were reported in the area. The collision came at a time when millions of Filipinos were heading to their home provinces ahead of Christmas Eve.
Henry Tria, one of about 30 anxious relatives who flocked to the coast guard office, said five relatives were on board, including teenaged nephews and a 7-year-old niece.
"I told them that we should take a bigger ship but the tickets were sold out, so they decided to go on this smaller ferry because they wanted to be home for Christmas," he said.
One nephew's name was on a coast guard list of rescued passengers, he added.
The floating bodies of two men and a woman were found by a tanker passing through the area.
The fatalities were identified as Beverly Cabinillo, 34; Relly Morales, 71; and Wellmar Tanayan, reports CBS News' Barnaby Lo.
Lo reports that in an interview with local radio DZBB, Commodore Luis Tuazon Jr., chief of the Metro Manila Coast Guard, said that initial investigation showed that the two vessels may have not followed the rules of the sea.
"There are privileged vessels, and there are stand-on vessels. If you're the privileged vessel and the other vessel doesn't follow the rules, you have to take evasive actions that will prevent the collision)," he said.
Tuazon said most of the passengers were sleeping when the vessels collided and many did not have time to get life jackets on.
Sea accidents are common in the archipelago because of tropical storms, badly maintained boats and weak enforcement of safety regulations.
Last year, a ferry overturned after sailing toward a powerful typhoon in the central Philippines, killing more than 800 people on board.
In December 1987, the ferry Dona Paz sank after colliding with a fuel tanker, killing more than 4,341 people in the world's worst peacetime maritime disaster.