At least 50 asylum-seekers drowned and 120 were rescued after a boat carrying some 500 people caught fire and capsized near an Italian island on Thursday, officials and media reports said.
The Italian news agency Ansa cited officials as saying 50 bodies had been recovered including those of two children and several women.
"The survivors are in a state of shock," the local mayor of Lampedusa, Giusi Nicolini, said on news channel SkyTG24.
"They have been in the water since the early hours of the morning," she said, as emergency workers raced to pluck more survivors out of the sea.
Nicolini said the migrants had told her they lit a small fire on their boat around half a mile from the shore to attract the attention of coast guards after their vessel suffered a technical failure.
The fire then spread, sowing panic on board which caused the boat to flip over, she said.
Lampedusa is an Italian island lying between Tunisia and Sicily and is a major entryway for asylum-seekers into the European Union, with thousands arriving every year.
"The first assistance was provided by people on pleasure boats who heard the screams," Antonino Candela, a local emergency medical worker said.
He said the migrants said they were from Somalia.
Candela said the incident happened shortly after another boat arrived safely in Lampedusa with 463 people on board, believed to be from Syria.
The accident was the latest in a series of recent drownings involving migrants near the Italian coast.
On Monday, 13 asylum-seekers drowned as they tried to swim ashore after their boat ran aground off the coast of Sicily.