Indonesian authorities say the Zahro Express ferry caught fire shortly after leaving Muara Angke port in north Jakarta, bound for Tidung island.
This survivor says passengers began to notice thick smoke about 15 minutes into the journey.
"Thick smoke suddenly emerged, blanketing the cabin. All passengers panicked and ran up to the deck to throw floats into water. In a split second, the fire became bigger, it was coming from where the fuel is stored."
More than 20 people are believed to have been killed in the fire, with dozens more receiving treatment in hospital.
A search involving 10 ships has been launched in an attempt to find those still unaccounted for.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
The majority on board are thought to be local tourists who were travelling to Tidung island to celebrate the new year with family and friends.
Cucu Rutminingsih was aboard the ferry with her family.
"Thank God, I'm extremely grateful. Extremely grateful. My family and I have reason to give thanks. Even though I'm perhaps still in shock, as I'm sure anyone would be after that experience."
Official records show only 100 of the 230 people on board the boat were registered as passengers.
Sea accidents are frequent in Indonesia, with vessels often overloaded and having too few life jackets on board.
One survivor, Freddy Zakaria, says passengers frantically searched for life jackets as fire ripped through the crowded ferry.
"The generator exploded, causing fire. We found out when we saw a man and his son falling into the water. We thought that they fell from the boat, but suddenly we realised that they already knew what had happened, that there was a fire on board, but they didn't say anything. One of us saw and started screaming 'fire'. So all of us started looking for life jackets and jumped."
Indonesian investigators are examining the wreckage of the burnt-out tourist boat.
Jakarta's Disaster Mitigation Agency says the vessel's captain is under police investigation over the incident.

