There were no immediate reports of injuries, a coast guard official told Reuters.
The Eleftherios Venizelos, carrying 875 passengers and 141 crew, was sailing off the island of Hydra when it notified the coast guard around midnight (10 p.m. BST) that a car parking compartment had caught fire.
It was escorted back to Pireaus after authorities scrambled air and sea assets to the area.
“It was a huge operation and everything went to plan,” said Nikos Lagdianos, spokesman for the coast guard.
At Pireaus a Reuters witness saw passengers in lifejackets walking down a sideway stair, while smoke billowed out of the ship. Firefighters were deployed at the pier.
People posted pictures on social media of individuals crowded on decks wearing red life jackets.
“It was difficult to breathe from the smoke,” one passenger identified only by her first name, Natassa, told Skai TV. Another reported hearing a ‘big noise’ before passengers were advised to wear lifejackets and head to assembly areas.
Disembarkation of all passengers was completed around 0700 am (0400 GMT).
The cause of the fire was not immediately clear, but authorities were investigating the possibility it may have started from a vehicle. There were more than 200 vehicles, including trucks, on the vessel. (Reuters)