More than 300 people drowned or were feared dead after a boat packed with African migrants caught fire and sank off the southern Italian island of Lampedusa on Thursday, one of the worst disasters of Europe's chronic immigration crisis.

The 20m boat, believed to be carrying around 500 people, mostly Eritreans and Somalis, sank no more than 1km from shore after a fire broke out, triggering a general panic that capsized the vessel.

The incident occurred when the boat's motor stopped working and the vessel, which had set out from the Libyan port of Misrata, began to take on water, Italy's Interior Minister Angelino Alfano said.

People on board burned a sheet to attract the attention of rescuers, but ignited fuel on the vessel.

"Once the fire started, there was concern about the boat sinking and everyone moved to one side, causing the boat to go down," he told a news conference.

Bodies pulled from the water were laid out along the quayside as coast guard vessels brought in more victims.

"It's horrific, like a cemetery," said Giusi Nicolini, the mayor of Lampedusa, the tiny island which has been at the centre of southern Europe's migration issues.

Trapped in the sunken ship

Fishing boats and coast guard vessels rescued 151 people in the morning and by late evening 104 bodies, including at least three children and two pregnant women, had been recovered. But divers had seen scores more trapped in the sunken ship, which rested in some 40 metres of water.

"They're certainly all dead," said Domenico Colapinto, a local fisherman whose vessel rescued 18 survivors in the morning. "There won't be anyone alive now because when we picked them up people were already exhausted," he told SkyTG24 television as evening fell.

The disaster happened four days after 13 migrants drowned off eastern Sicily. Italy's President Giorgio Napolitano said action was needed by the European Union to stem "a succession of massacres of innocent people".

Last year, almost 500 people were reported dead or missing on the crossing from Tunisia to Italy, the UN refugee office UNHCR said. Syrians fleeing civil war have added to the numbers.

'Endless tragedy'

The search for survivors and victims began within a four nautical mile radius, in water around 30-45 metres deep, and widened later in the day in an effort to find bodies that had been pulled away by the tides, Alfano told reporters.

Antonio Candela, director of rescue operations at the local health authority ASP Palermo, said many of those pulled out of the sea alive had been suffering from hypothermia and dehydration but were otherwise not seriously hurt.

UN High Commissioner for Refugees António Guterres praised the rescue effort, but said: "I am dismayed at the rising global phenomenon of migrants and people fleeing conflict or persecution and perishing at sea."

African migrants frequently head for Lampedusa, just 113km from the coast of Tunisia, and are often picked up at sea in dangerously overcrowded boats by the Italian coastguard.

The previous night, 463 refugees from Syria were rescued, Candela told SkyTG24 television.

Pope Francis, who visited the island in July on his first papal trip outside Rome, said he felt "great pain" over the disaster. "The word that comes to mind is 'shame'," Francis said in unscripted remarks after a speech in the Vatican. "Let us unite our strengths so that such tragedies never happen again."

Stream of migrants

The stream of migrants poses a humanitarian and political problem for the Italian government. About 15 000 reached Italy and Malta – 13 200 and 1 800 respectively – by sea last year, the UNHCR says. Thousands more have arrived this year.

Migrants who arrive in Italy are allowed to apply for asylum. Many are ordered to leave the country but slip away to become illegal immigrants in Italy or elsewhere in the European Union.

Italy has pressed the EU for more help to fight the crisis, which it says concerns the entire 28-nation bloc.

"This is not an Italian tragedy, this is a European tragedy," Alfano said. "Lampedusa has to be considered the frontier of Europe, not the frontier of Italy." – Reuters