Scores of survivors were plucked from the Java Sea and the ship's charred hull, but more than 50 others remained unaccounted for.

The fire started in a truck on the Levina 1's car deck, hours after the 2,000-ton vessel left the capital, Jakarta, for the northwestern island of Bangka, said port official Sato Bisri.

Aerial footage showed a raging fire and heavy black smoke pouring from the 27-year-old ferry. The cause was not immediately known.

"The fire started on the lowest level and got bigger and bigger, panicking passengers," said Ebun, 30, who managed to get hold of a life jacket. "Many people, including me, jumped into the water. Someone came and pulled me onto another ship."

Bisri said at least eight people were killed, two of them children.

At least 288 passengers and 15 crew were rescued, said Col. Hendra Pakan.

Most arrived at the Jakarta port Thursday afternoon, where emergency vehicles were waiting, and others were on their way aboard a warship. The injured were taken to nearby hospitals or treated in a makeshift medical hall at the port.

Two warships, three helicopters, a tug boat and nine cargo ships were taking part in the rescue operations, scouring surrounding waters for more survivors, said Hambar Wiyadi, another port official.

The navy said the ferry was carrying 350 passengers. The ferry's log indicated it had 228 passengers, 42 trucks and eight cars on board, but tallies are often incomplete and boats overloaded.

In the vast nation of 17,000 islands, ferries are the cheapest and most popular form of public transportation. But safety standards are poor, leading to hundreds of deaths each year.

Indonesia has been hit by a string of transportation disasters in recent months.

In late December, a passenger ferry sank in a storm in the Java Sea, killing more than 400 people. Days later, a Boeing 737-400 passenger plane crashed into the ocean, killing all 102 people on board.