Helicopters were taking passengers off the Italian-flagged Norman Atlantic in pairs and transferring them to a nearby vessel, officials said.
There were no confirmed reports of casualties and differing accounts of how many people had been rescued from the ferry, which was carrying almost 500 passengers and crew when it sent a distress signal early on Sunday after fire broke out on its lower deck.
Greek authorities said 131 people were clear of the danger zone while an official said 150 had managed to get off the ship aboard a rescue boat.
Each air transfer was taking around 15 minutes per helicopter, according to a Greek defence ministry official. Another official said two Italian and two Greek helicopters were involved in the rescue.
Coastguard spokesman Nikos Lagkadianos said the heavy rain that was hampering the rescue had helped contain the fire although the ship was still burning. Two tugboats were present, one of which had managed to approach the ship to try to extinguish the blaze.
Greek Shipping Minister Miltiadis Varvitsiotis said the very bad weather, with winds of up to 55 miles (88 kilometres) per hour earlier, made the operation extremely difficult.
“We are doing everything we can to save those on board and no one, no one will be left helpless in this tough situation,” he told reporters. “It is one of the most complicated rescue operations that we have ever done.”
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 was travelling from Patras in western Greece to the Italian city of Ancona.
Lagkadianos said 56 people had been successfully transferred from the rescue boat, on which 150 people had escaped to the container ship Spirit of Piraeus.
INTERNATIONAL RESCUE EFFORT
Command of the operation was transferred to Italy after the ship drifted 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, but the rough seas made the manoeuvre difficult.
Officials said there were 478 passengers and crew on the Norman Atlantic, of whom 268 were Greek, while a foreign ministry official said there were also passengers from 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. local time (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.