Some 120,000 migrants are to be resettled across Europe, as many times more than that figure arrive on the continent fleeing poverty and war.
The UN said these last few days could be "the last opportunity for a coherent European response" but warned the proposal to resettle 120,000 people, approved today by EU interior ministers, was not enough as nearly 500,000 had entered Europe by sea so far this year.
Europe's response to the migration crisis has been marred by a lack of co-ordination and resentment between countries that feel they are bearing the brunt of the numbers arriving, such as Italy and Greece, common gateways to Europe, and Germany, which has committed to settling many refugees already.
French Interior Minister Bernard Cazeneuve said the agreement was "an important step" that was approved by a "crushing majority" of the 28 ministers, one representing each EU state, who met in Brussels today.
The Czech Republic, Hungary, Romania and Slovakia were opposed to the motion, according to Czech interior minister Milan Chovanec.
Thomas de Maiziere, German Interior Minister, said his country would take more than 30,000 people. The country has already committed itself to taking in 800,000 people this year.
He said committing to this figure would actually decrease the numbers heading to Germany, adding: "We are doing this out of solidarity and responsibility, but also in our own interest.
"At the moment, something like 50% of those who are arriving in Greece are coming to Germany. With a quota of 26%, fewer of this group would come."
He added the deal would cut "secondary migration," where people arrived in the EU but continued on to other countries where they preferred to go instead.
He added: "If people are distributed in Europe, then they can't choose what country they go to. They have to stay in the country they were distributed to."
The Czech Republic, Romania and Slovakia will have to take a share of the migrants, despite voting against the plan, The New York Times reported.
The UN High Commissioner for Refugees has urged the EU to set up facilities in Greece, where tens of thousands have arrived after making the sea crossing from Turkey in unsafe boats, during which thousands of people have died.
"This is a crisis of political will combined with lack of European unity that is resulting in management mayhem," António Guterres, UN High Commissioner for Refugees, said.
"When in 1956, 200,000 Hungarians fled to Austria and Yugoslavia, not only were people properly received, but a relocation program was quickly put into place and 140,000 people were relocated to other countries. What was possible then should be possible now."
He added: "With an average of 6,000 persons arriving every day on European shores, this requires a massive investment.
"Many tens of thousands of people are likely to require shelter and assistance at reception areas at any given time."