Pope Francis said on Sunday European Union member states should share responsibility for taking in migrants and not just leave it to the countries where people arrive.
He spoke as migration triggered fresh political tensions in Italy, where there has been a stand-off between the government and charity ships trying to disembark migrants.
"The European Union has to take up a policy of collaboration and help. It can't leave Cyprus, Greece, Italy and Spain with the responsibility of all the migrants that arrive on their shores," he told reporters on the plane returning from a four-day trip to Bahrain.
"Each government of the European Union should agree on how many migrants it can take," Francis said.
"Migration policy has to be agreed upon by all countries. There can't be a policy without consensus," he said.
Matteo Salvini, head of Italy's anti-immigrant League party and deputy prime minister in the new right-wing government, thanked the pope for his "words of great wisdom".
"Italy can not be left alone and cannot take in everyone," Salvini added in a statement.