The Costa Concordia hit a sandbar on Friday evening near the island of Giglio and listed about 20 degrees, after which people tried to reach land in lifeboats or by swimming.
Rescue teams are going from cabin to cabin, searching for survivors.
Italians, Germans, French and British were among the 3,200 passengers. There were also 1,000 crew on board.
Continue reading the main story
We were very scared and freezing because it happened while we were at dinner so everyone was in evening wear”
Mara Parmigiani Passenger
Helicopters evacuated the last 50 people on the deck who were in a "worsening" situation.
Some media reports said eight people had died.
The Costa Concordia had sailed earlier on Friday from Civitavecchia port near Rome for a Mediterranean cruise, due to dock in Marseille after calling at ports in Sicily, Sardinia and Spain.
One thousand passengers were Italian, with 500 Germans and 160 French.
A few dozen British passengers are believed to have been on board, said the UK Foreign Office, which is sending a team to the scene.
Passengers were eating dinner on Friday evening, when they heard a loud bang, and were told that the ship had suffered electrical problems, one passenger told Italy's Ansa news agency.
Cabin steward Deodato Ordona says the ship suddenly began to tlt.
"We were having supper when the lights suddenly went out, we heard a boom and a groaning noise, and all the cutlery fell on the floor," said Luciano Castro.
Passenger Mara Parmegiani told Italian media there were "scenes of panic".
"We were very scared and freezing because it happened while we were at dinner so everyone was in evening wear. We definitely didn't have time to get anything else. They gave us blankets but there weren't enough," she said.
The 290-metre (950 ft) vessel ran aground, starting taking in water and listing by 20 degrees, the local coast guard said.
Orders were given to abandon ship, Deodato Ordona, a cabin steward on the Costa Concordia, told the BBC.
"We announced a general emergency and took passengers to muster stations," he said.
"But it is hard to launch the lifeboats, so they moved to the right side of the ship, and they could launch."
Elderly passengers were crying, said Mr Ordona, adding that he and some others jumped into the sea and swam roughly 400 metres to reach land.
Rescued passengers are being accommodated in hotels, schools and a church on Giglio, a resort island 25km (18 miles) off Italy's western coast.
Searches are still going on for "possible missing people", regional official Giuseppe Linardi told the Italian broadcaster RAI.
Coast guard official Francesco Paolillo, a local coast guard official, told the AFP news agency there was a a 30m hole in the ship but that it was too early to say what exactly had happened.
"We think this happened as a result of sailing too close to an obstacle like a reef," he said.
Costa Crociera, the company which owns the ship, said it could not yet say what had caused the accident.
"The gradual listing of the ship made the evacuation extremely difficult," a statement said. "The position of the ship, which is worsening, is making more difficult the last part of the evacuation.
"We'd like to express our deepest gratitude to the coastguard and other emergency services, including the authorities and citizens of the island of Giglio, who did their best in saving and helping the passengers and crew."
Were you on the cruise ship? Do you have friends and family on the ship? Are you on the island of Giglio? Did you witness the accident? You can send your comments to the BBC using the form below: