The captain of the ferry ship MV Thomas Aquinas, which was approaching the port late Friday, ordered the ship abandoned when it began listing and then sank just minutes after collision with the MV Sulpicio Express, coast guard deputy chief Rear Adm. Luis Tuason said.
The ferry carried 752 passengers, including children and infants, and 118 crewmembers. The number is higher than the 841 earlier reported by ferry owner 2Go, Tuason said.
He said that 213 are still missing, some of them possibly trapped inside the vessel that sank in waters about 33 meters (100 feet) deep off Talisay city in Cebu province, about 570 kilometers (350 miles) south of Manila.
Twenty-eight people, including children, were confirmed dead and 629 passengers and crew had been rescued.
Tuason said that navy divers recovered at least four more bodies from the underwater wreck early Saturday. Reporters at the site, about two kilometers (1.25 miles) from shore, saw the bodies coated with fuel and oil that spilled from the ferry.
"There could be more bodies there, but there were ropes inside that our divers could get entangled in," Tuason said.
He said that the coast guard will send more divers with deep-water equipment to help retrieve bodies.
In a statement, 2Go said the ferry "was reportedly hit" by the cargo vessel "resulting in major damage that led to its sinking." An investigation will begin after the rescue operation, the coast guard said.
Danny Palmero, a former fisherman, said he was with friends who responded to the ferry's distress call and rescued seven people on their motorized outrigger canoe.
"I saw many flares being shot," he said by telephone. "As a former nautical student, I knew it was a distress signal."
He said a fisherman arrived at the shore with three survivors and told the crowd gathered that there was a collision and that there were many people in the water.
"We just picked up the survivors and left the dead in the water," he said. "I heard screams and crying."
The crewmen of the cargo ship were throwing life jackets to the people who jumped into the dark waters, he said.
He said there is a large gash at the front of the cargo vessel. "It now has a mouth," he said, describing the ship's bow.
Hundreds of passengers jumped into the ocean as the ship started to sink, according to survivors. Many of the passengers were asleep and others struggled to find their way in the dark.
Jerwin Agudong said he and other passengers jumped overboard in front of the cargo vessel after the ferry began taking on water and the crew distributed life jackets.
He told radio station DZBB that some people were trapped and he saw bodies in the water.
"It seems some were not able to get out. I pity the children. We saw dead bodies on the side, and some being rescued," he said.
He said the ferry was entering the pier when the cargo vessel, which was on the way out, suddenly collided with it.
"One of the persons who jumped with us hit his head on metal. He is shaking and he is bloodied," Agudong said.
The 138-meter (455-foot) -long ferry sank in about 30 minutes, he said.
The youngest among those rescued was an 11-month baby, news reports said.
The ferry came from Nasipit in Agusan del Sur province in the southern Philippines on a daylong journey, Agudong said.
Accidents at sea are common in the Philippine archipelago because of frequent storms, badly maintained boats and weak enforcement of safety regulations.
In 1987, the ferry Dona Paz sank after colliding with a fuel tanker in the Philippines, killing more than 4,341 people in the world's worst peacetime maritime disaster.
In 2008, the ferry MV Princess of the Stars capsized during a typhoon in the central Philippines, killing nearly 800 people.
Source: Associated Press writers Oliver Teves, Teresa Cerojano and Hrvoje Hranjski in Manila contributed to this report.