The fire broke out aboard a vessel transporting kerosene near Lamma Island around 11:30 a.m. local time, a police spokeswoman told CNN.
Crew on board jumped into the water as the fire engulfed the ship, 23 of the 26 or so believed to be on board had now been rescued by marine police boats, the spokeswoman said. One dead body was also pulled out of the water.
A government spokesman said there were three fire boats deployed to tackle the blaze. As of Tuesday afternoon, the fire appeared to be largely extinguished, but the ship was listing severely.
Significant damage, including a large hole framed by metal twisted outward from the deck, could be seen on one side of the ship, appearing to confirm reports of an explosion prior to the fire.
Liquid could be seen pouring from the damaged area, but it was unclear whether this was fuel or simply water running off from the firefighting. There was no sign of significant oil build up on the water near the vessel.
Hong Kong’s Environmental Protection Department told CNN in an email that the city immediately deployed cleaning vessels to the site on standby, but that no oil spillage had been observed so far.
Two crew members had been rushed to hospitals in central Hong Kong, the government spokesman said, one with a leg injury, the other with burns.
Residents of Lamma and nearby Lantau Island reported hearing a loud bang and hearing their windows and other furniture shake.
“My windows shook really badly but (there) was no wind,” Lamma resident Deb Lindsay said. “I thought there had been an earthquake!”
Lindsay said there were three bangs, an initial “really big one” followed by two smaller apparent explosions minutes later.
Tracy Lockwood, a Lamma resident, said she was teaching across the Lamma Channel in Aberdeen, on the southern part of Hong Kong island, and felt a “big wallop on the windows.”
“I thought it was just a weird big gust of wind but it must have been (the) explosion,” she added.
CNN’s Sandi Sidhu and Angie Chan contributed reporting.