Helicopters were plucking passengers off the Italian-flagged Norman Atlantic and transferring them to a nearby vessel, after a dramatic day that began when a fire broke out on its lower deck in the early hours.
Authorities said one Greek man had died and there were reports of four injured among 478 passengers and crew and as night fell. The Italian navy said 190 people were clear of the danger zone, with 287 still on board.
The Italian coastguard said the fire on board had been "tamed" and the ship was being stabilized by cables attached to a tug in order to assist rescue operations which remained extremely difficult in rough seas and strong winds.
The ship will be towed to a nearby port after cables are securely attached but an official from the Italian navy said it had yet to be decided whether this would be in Italy or Albania, following conflicting statements from officials in Greece, Albania and Italy.
The ferry is just 13 miles (21 km) from the Albanian port of Vlore but an Italian navy spokesman said it may be towed to either Otranto or Brindisi in the south-eastern heel of Italy.
The airlifts would continue while the boat was being towed towards port, and rescue workers would try to get closer by boat to bring people off if conditions allowed, Greek Shipping Minister Miltiadis Varvitsiotis told reporters.
"It will be a very difficult night and I hope that everything will go well and we will rescue all passengers and all crew members," Varvitsiotis said.
The Italian navy said two Italian air force helicopters, one Greek Superpuma helicopter and an Italian plane were taking part in the rescue, winching up passengers in small groups. Other aircraft and 10 ships were also taking part in the operation in support roles.
Earlier, Greek coastguard spokesman Nikos Lagkadianos said the heavy rain that was hampering the rescue had helped contain the fire although the ship was still burning.
Terrified passengers told how they had to move higher and higher in the ship to escape the flames.
"We went to the deck where there were life boats, but at some point we felt the floor burning and we went higher up to the heliport," Rania Fireou told Greek television by phone before the airlifts began.
"There are many children and elderly people aboard," she said. "We have gathered all together and we are trying to warm ourselves."
Varvitsiotis said the bad weather, with winds of up to 55 mph (88 kph) earlier, made the operation one of the most complex Greek authorities had been involved in and vowed that no one would be left behind.
Coastguard officials said the Norman Atlantic, which was also carrying more than 200 vehicles, was 44 nautical miles northwest of the island of Corfu when it radioed for help. It had been traveling from Patras in western Greece to the Italian city of Ancona.
Command of the operation was transferred to Italy after winds took the helpless vessel out of Greek waters but officials were coordinating closely and an Albanian coastguard vessel was also taking part.
A coastguard official said nearby passenger and container ships had attempted to form a ring around the burning vessel to try to form a windbreak to allow small rescue boats to approach.
Officials said most of the passengers were Greek but the passenger list included names from several other countries including Germany, Italy, Austria, Turkey, France and the Netherlands. Many appeared to be truck drivers.
The fire broke out in the lower deck garage of the vessel but there were differing accounts of when it started. Initial reports said the fire began at around 6.00 a.m. (0400 GMT) but Italian officials put the time at 4.30 a.m.
The Norman Atlantic is a 26,900-tonne, roll-on roll-off ferry chartered by Greek ferry company ANEK. According to marine traffic data, it was built in 2009 and previously operated in Italy. ANEK said in a statement it was cooperating with rescue authorities.
Sent from my BlackBerry® smartphone, powered by Easyblaze