Life boats were even lowered, passengers said. Austrian Thomas Foaller said some passengers began to panic. Couples that were separated were calling out to each other, he said.
Among them were American couple Gordon and Eleanor Bradwell of Athens, Georgia. They were separated when Eleanor went to the couple's room to get a life vest. A crew member had handed the 72-year-old Gordon his own.
But the fire that broke out Monday was brought under control and the more than 1,000 people wound up staying aboard the Costa Allegra, which suddenly had no engine power, no air conditioning and no running water for showers or toilets.
Eleanor Bradwell said that the initial response to the alarm seemed to be disorganized but overall she and her husband felt the shipping line had handled the emergency well.
"It could have been worse than it was," said Gordon Bradwell. "It could have been disastrous ... we're here, we're alive."
The couple ate cold sandwiches for three days and moved their bedding onto the deck to escape the stifling heat after the fire left the Costa Allegra without power.
"The toilets were running over, there was no electricity. It was very hot," said Eleanor Bradwell.
The couple said they realized the alarm must be real when it went off on Monday because they had already done the drill. When the fire first broke out, passengers were directed to put on their life jackets and go to stations on the deck, they said. Life boats were lowered but no one got in after the fire was contained.
Dozens of officials flocked to the port Thursday to help passengers ashore, a couple of whom applauded as the ship approached land.
The Seychelles Red Cross set up tents to assist any passengers needing medical help and embassy and consular officials were at the port to receive their citizens. Tour operators lined up dozens of buses to take passengers to either the airport or a Seychelles resort. Disembarkation of the more than 1,000 people onboard was expected to take several hours.
The cause of the fire is unknown. A French fishing vessel towed the cruise ship to the Seychelles.
U.S. Consular Agent Travis Jensen said he was a the docks here to help ensure the health and safety of Americans onboard.
"We haven't been in contact with the ship because they were on battery power," he said. "No emergency evacuations have been reported."
Travel agents eager to help passengers ashore waited alongside diplomats and dozens of journalists.
"The focus of the operation is to get them a warm meal and a shower," said Guillaume Albert, head of Creole Travel Service. "I think the happy ending is the people coming off the boat."
The average age of passengers onboard the ship is 55 years, he said, and the heat and lack of hygiene could be uncomfortable for some of the older travelers. The weather in the Seychelles is hot and humid.
The fire came only six weeks after the Costa Concordia, owned by the same company, hit a reef and capsized off Italy, killing 25 people and leaving seven missing and presumed dead.
"I know it was bad luck for these guys but they are doing the best they can," Albert said. "They have a lot of image building to do right now but I've seen a very professional team."
"It happened in quite an isolated spot so it took quite a while to get back here," said British High Commissioner Matthew Forbes as he waited for the boat to dock.
A Seychelles official suggested on Wednesday that the journey may also have taken longer because the French fishing vessel towing the cruise ship had refused to give way to two faster tugs sent by the Seychelles. Although assistance to people at sea is free, assistance to ships is often paid.
On Thursday, Lt. Col. Michael Rosette, the deputy chief of staff of the military, said the tug boats were more appropriate than the fishing vessel but that the decision not to switch towing vessels was up to the cruise line company.
The Allegra, whose Italian name means "merry," or "happy," left northern Madagascar, off Africa's southeast coast, on Saturday. The liner was carrying 413 crew members and 627 passengers, including 212 Italians, 31 Britons and eight Americans.
About 375 people are taking advantage of the company's offer of a free 15-day vacation in the Seychelles.
"The fact we have a carnival on, the weather is great, and the fact they want to continue their holidays is great for them and great for us," said Srdjana Janosevic, spokeswoman for the president of the Seychelles. "It means this potentially tragic situation has a happy ending."
Tourism in the tiny island nation almost stopped completely in 2009 because of the threat of pirate attacks. There were no reports of pirates approaching the stricken Costa Allegra or even being seen.
The Seychelles is a chain of white-sand resort islands that attracts celebrities and royalty. Its population is just 87,000, and it is heavily dependent on fishing and tourism.