The Costa Concordia was on a trip around the Mediterranean when it hit a reef near the Isola del Giglio late Friday. The local mayor said he feared further casualties as it was proving difficult to rescue the last passengers.
One of the victims was a man in his 70s who died of a heart attack caused by the shock to his system when he jumped into the icy waters, reports said.
Several people were also injured in the accident, two of them seriously.
Most of the 3,200 passengers and 1,000 crew members had been evacuated, but around 200 people were still on board around 0230 GMT, according to the prefect of the nearby city of Grosseto, Giuseppe Linardi.
Helicopters with spotlights were being used to help rescuers.
“At around 8:00 pm (1900 GMT) the 290-metre-long Costa Concordia cruise ship… began taking on water and tilting over by around 20 degrees,” the coast guard said in a statement, as most of those aboard were rescued in lifeboats.
Passengers heard a large bang and were initially told the ship had shuddered to a halt for electrical reasons, before being told to put on their life-jackets, a passenger from the boat told ANSA news agency by telephone.
“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,” passenger Luciano Castro told ANSA news agency.
Some passengers jumped into the sea in their hurry to get off the sinking ship, according to the reports.
“It was like a scene from the Titanic,” said passenger Mara Parmegiani.
The local mayor said they were trying to find room to accommodate the rescued passengers, including pregnant women and children.
“We are trying to accommodate them anywhere we can, in schools, nurseries, hotels, anywhere that has a roof,” said mayor Sergio Ortelli, who added that some passengers were even bedding down for the night in the church.
The Costa Crociera company, which owns the vessel, said that it was not yet possible to say what caused the problem, but that the evacuation had been fast.
“The ship was on a cruise in the Mediterranean, leaving from Savona with planned stops in Civitavecchia, Palermo, Cagliari, Palma, Barcelona and Marseille,” the company said.
“There were around 1,000 Italian passengers on board, as well as 500 Germans and around 160 French people,” it added, without giving details about the rest.
The cruise ship — which boasts 58 suites with balconies, five restaurants, 13 bars, five Jacuzzis and four swimming pools — had set off from the Civitavecchia port near Rome earlier Friday when it ran into difficulties.
Boats from the nearby port helped evacuate the passengers and crew.