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.

Over 100 bodies, including those of at least three children and two pregnant women, have been recovered, but around 200 people are still missing.

Divers reported scores of bodies trapped in the sunken ship, which rested in around 40m of water.

The boat, believed to be carrying around 500 people, mostly Eritreans and Somalis, sank after a fire broke out, triggering a 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.

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

Italian Interior Minister Angelino Alfano said: "Once the fire started, there was concern about the boat sinking and everyone moved to one side, causing the boat to go down."

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 headache.

Fishing boats and coast guard vessels rescued 151 people this morning.

The disaster happened four days after 13 migrants drowned off eastern Sicily.

Italian 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 says.

Syrians fleeing civil war have added to the numbers.

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.

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 Antonio 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.

Pope Francis, who visited the island in July on his first papal trip outside Rome, said he felt "great pain" over the disaster.

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 said. Thousands more have arrived this year.

Transport Minister Maurizio Lupi said more needed to be done to combat people traffickers who coordinate the transport of migrants in crowded and unsafe vessels.

"It is a task which we have to take on and which the international community and the European community have to take on as well," he said.

Head of Office at UNHCR Ireland Sophie Magennis said there is a need for greater solidarity amongst European states to help countries such as Italy and Malta who are dealing with increasing numbers of refugees arriving in Europe by sea.

Speaking on RTÉ’s Six One, Ms Magennis said that so far this year over 30,000 people have travelled from North Africa to Italy and more than 1,500 have made the trip to Malta.

This is twice the number that made similar journeys in 2012.

Ms Magennis said the majority of these people are from Syria, Somalia or Eritrea.

"Desperate people will take desperate measures and efforts are being made to find alternatives while giving them access to protection," she said.