Twelve people were missing after an Italian-flagged ferry caught fire overnight on the Ionian Sea, Greek officials said as emergency crews raced against the clock to put out the blaze and locate survivors before dark.
Divers were being brought in to widen the search for those missing, the Greek coastguard said, after 278 people had been rescued and taken to the island of Corfu following the blaze on the Euroferry Olympia en route from Greece to Italy.
The fire was still burning on Friday afternoon hours after it first erupted off the island of Ereikousa between Greece and Albania, and officials said the cause remained unknown.
Among the rescued, 10 were taken to hospital with breathing difficulties and minor injuries, public television ERT said.
But several were still unaccounted for on Friday afternoon.
"An operation to locate 11 missing passengers is in progress," the Greek coastguard said in a statement.
A Bulgarian and a Turkish truck driver remained trapped on board and were trying to make their way to the deck, a freight company in Bulgaria said.
According to ferry owners Grimaldi Lines, the vessel was officially carrying 239 passengers and 51 crew as well as 153 trucks and trailers and 32 passenger vehicles.
A migrant stowaway was rescued in addition to those on the ship's list, raising fears that more undocumented passengers could be on board.
Grimaldi Lines said they were alerted at 4.12am to the fire on the ship, which was heading to Italy from the Greek port city of Igoumenitsa opposite Corfu.
Television images showed the ship enveloped in flames which sent plumes of black smoke into the sky.
"The ship is burning from end to end," Corfu rescuer Yiorgos Glikofridis told ERT on Friday afternoon from a vessel near the ferry.
"There is a tremendous amount of smoke and visibility is poor. We see no movement on the deck, only flames," he said.
Three tugboats equipped with fire hoses were engaged in extinguishing the fire, and a ferry was despatched with two fire engines on board, the coastguard said.
A Greek coastguard spokeswoman told AFP it would take several hours to put the fire out.
The Bulgarian foreign ministry said there were 127 of its nationals on the passenger list, including 37 truck drivers.
Another 24 are from Turkey, the country's NTV station said. ERT said there were 21 Greeks among the passengers.
No fuel spill has been detected at sea, and the ship's stability does not appear to be compromised, the company said.
"Tugboats have been hired and are heading towards the Euroferry Olympia to give prompt support and manage the emergency," it said.
"We heard that the fire started in the hold, but it's not certain," a Greek man who identified himself as a passenger told Skai TV.
"It took just 15 minutes for the fire to reach the deck," he said, adding that the mostly Italian crew's response had been "simply perfect".
"They were very organised. The crew saved us," he said.
Passengers rescued by an Italian law enforcement patrol boat that also rushed to the scene later told Italian news agency Ansa that the flames were "gigantic" and that panic had ensued.
"The evacuation was not a simple matter," the patrol boat's commander told Ansa.
Nikos Bardis, a local fisherman, had earlier told ERT that several fishing boats were also circling the stricken vessel, looking for people in the water.
"We can hear explosions, it must be freight trucks blowing up," he said.
There is heavy maritime traffic between the western Greek ports of Igoumenitsa and Patras and the Italian ports of Brindisi and Ancona.
The last shipboard fire in the Adriatic occurred in December 2014 on the Italian ferry Norman Atlantic. Thirteen people died in the blaze.