The Allegra lost power in the Indian Ocean Monday because of a fire in the engine room.
It was carrying 636 passengers and a crew of 413, according to Costa Cruises. Most of the passengers were from Europe, but eight were from the United States and 13 were from Canada.
Safe on land, passenger Mari-Anne Thon described her alarm when the fire broke out.
"It was extremely black smoke so we knew what was going to happen," she said, briefly choking up before continuing: "So they sounded the alarm and we went out to our room to get our life jackets and then we went up to the muster station. We all were standing there quite a while."
Fellow passenger Gordon Bradwell agreed that the situation was "a concern in the beginning because it could have been far worse than it was."
"It could have been disastrous, yes, no doubt about it," he said.
But he said the crew calmed the passengers.
"That concern lasted for an hour or two, and then it abated because we were assured that everything was going to be OK. And it was," he said.
The ship departed from Diego Suarez, Madagascar, on Saturday and was originally scheduled to arrive in the Seychelles Tuesday.
The Allegra is a fleet mate of the Costa Concordia, which wrecked off the coast of Italy on January 13, killing at least 21 people.
Most of the passengers and crew of the Allegra were expected to be put on planes and sent home almost immediately.
Costa Cruises said it had secured 600 plane tickets and 400 hotel rooms.
With power out on the Allegra, people on board had to use mineral water for washing, Costa said.
They had a supply of cold food that included fruit, cheese and cold cuts, while fresh bread was flown regularly to the ship by helicopter, the company said.
A large French fishing ship began towing the liner to port on Tuesday.
A Seychelles Coast Guard ship reached the Costa Allegra later in the day, along with two tugboats from the Seychelles Ports Authority, said Seychelles presidential spokeswoman Srdjana Janosevic.
The ship was towed to Port Victoria, the Seychelles capital.