Passengers panicked and jumped into the sea as flames and smoke rapidly engulfed the Zahro Express shortly after it left port to head to the popular holiday island of Tidung, the national disaster agency said.
Another 17 people were missing and 194 were rescued following the blaze which started with an explosion in the engine room that the transport ministry said was accidental and could have been caused by an electrical fault.
“Fifteen minutes after the boat set sail, people at the back of the boat started making noise,” a female passenger Evi, who gave only one name, told local station Metro TV.
“Then I saw smoke, there was more and more, the boat was crowded and people were fighting for life jackets.”
Another survivor, Juju Rukminingsih, told how someone took her son’s life jacket just as he was about to jump from the boat.
“When we wanted to go, I panicked because I saw my son jump off the boat without a (life jacket) because somebody else had taken it,” she told a local TV station.
Passing fisherman plucked many of the passengers, all of whom were believed to be Indonesians, to safety and firefighting boats were deployed to put out the blaze.
It was just the latest fatal maritime accident in the vast Indonesian archipelago, which relies heavily on boats to ferry people round its 17,000 islands but has a patchy safety record.
Search efforts continue
After the blaze was extinguished, the boat returned to port and rescuers searched through the fire-blackened vessel, which had been heading to the island 50 kilometres (30 miles) from the capital and part of the Thousand Islands archipelago.
Vessels from several government agencies scoured the sea in the hunt for survivors while the Jakarta governor visited the injured at a local hospital.
A manifest had indicated there were around 100 passengers on the vessel but as rescuers plucked passengers from the stricken vessel it became apparent the figure was far higher in a country where overcrowding on boats is common.
"The boat's manifest says there are around 100 people on board, but obviously that's wrong, so we are still searching," national disaster agency spokesman Sutopo Purwo Nugroho told AFP.
The agency said that the tourists were likely heading to Tidung to celebrate the New Year.
The Thousand Islands, many of which are just a couple of hours by boat from Jakarta, are a popular weekend getaway for residents of the teeming, overcrowded capital of more than 10 million inhabitants.
Fatal boat accidents are common in Indonesia.
In September a tourist boat on the resort island of Bali exploded, killing two foreigners and injuring about 20 others.
At least 54 people died in November when an overcrowded speedboat carrying three crew and 98 passengers -- mostly Indonesian migrant workers -- struck a reef and sank on its way from Malaysia to Batam.