Some nations -- including the Czech Republic, Hungary, Romania and Slovakia -- voted against the plan, Czech Interior Minister Milan Chovanec said on Twitter, according to Sky News.
"We will soon realize that the emperor has no clothes,” Chovanec said. “Common sense lost today."
The Czech government earlier warned that any attempt to approve a relocation plan would backfire for the EU, and could end in “big ridicule” for its members and officials.
But a Twitter post from the Luxembourg mission to the European Union said the decision was adopted by a "large majority" of the EU's 28 member states. Luxembourg currently holds the rotating presidency of the EU, and presided over Tuesday's meeting of interior and justice ministers in Brussels, Belgium.
German Interior Minister Thomas de Maiziere said his country would take more than 30,000 people.
"We are doing this out of solidarity and responsibility, but also in our own interest," he said. "At the moment, something like 50 percent of those who are arriving in Greece are coming to Germany. With a quota of 26 percent, fewer of this group would come."
De Maziere said the deal also aims to cut "secondary migration" in which people move from one country to another within Europe.
He said that, "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."
While the ministers talked in Brussels, migrants scuffled with police at a transit camp in Croatia, and nations in southeast Europe scolded and threatened each other as the unrelenting flow of asylum-seekers raised diplomatic tensions to a boiling point.
The United Nations' refugee agency said the next few days may be the last chance for a coherent European response as hundreds of thousands flow from war-torn areas in the Middle East, Africa and Asia to Europe.
The U.N. High Commissioner for Refugees warned that the proposal on the table isn't enough to stabilize the situation, because 477,906 people have already entered Europe by sea this year. It urged the EU to quickly set up facilities in Greece, where tens of thousands have arrived after making the hazardous sea crossing from Turkey.
This may be "the last opportunity for a coherent European response," said Melissa Fleming, a spokeswoman for UNHCR.
When compared to the 4 million refugees being sheltered in Turkey, Lebanon and impoverished Jordan, the numbers seem paltry for a major world trading power with a population of 500 million.
But an estimated 3,000-4,000 people arrive in Greece each day. Many plan to move north to set up home in Germany, bringing yet more pressure to overburdened borders as they go.
Meanwhile, Croatia started letting in trucks across its border with Serbia Tuesday after Serbia's prime minister gave the European Union a deadline to persuade Croatia to resume all cargo traffic that was halted after a surge of refugees over their mutual frontier.
Aleksandar Vucic said Tuesday that Croatia's closure of the main border crossing for cargo trucks early Monday is "a scandal of international proportions."
Croatian media said that only trucks loaded with foodstuffs would be allowed to cross. Serbian media said that all trucks that have been stranded on the Serbian side of the border are going through.
Landlocked Serbia has said it is losing millions of dollars a day because of the blockade.
Croatia, which has last week closed all but one border crossing with Serbia, wants to pressure Serbia to stop sending the refugees toward Croatian borders and rather channel them further north to Hungary.
More than 30,000 refugees have crossed from Serbia to Croatia since Hungary closed its borders a week ago.
The Associated Press contributed to this report.