Diplomats said interior ministers meeting in Brussels had voted to launch the scheme, backed by Germany and other big powers, in order to tackle the continent’s worst refugee crisis since World War Two.
The Czech minister tweeted that he had voted against, along with colleagues from Slovakia, Romania and Hungary, with Finland abstaining.
Prague had earlier warned that any attempt to approve such a scheme would be unworkable and could end in “big ridicule” for governments and EU authorities.
“We will soon realize that the emperor has no clothes. Common sense lost today,” Czech Interior Minister Milan Chovanec tweeted after the vote.
This year’s influx of nearly half a million people fleeing war and poverty in the Middle East, Asia and Africa has plunged the EU into disputes over border controls and bitter recriminations over how to share out responsibility.
Eastern states with no tradition of integrating large numbers of Muslims are anxious about the impact on their societies and keen to avoid any signal that might encourage even more desperate people to set sail across the Mediterranean for Europe.
“If we fail to find the right solution in the long term, the migrant crisis could truly threaten the existence of the European Union. But I am not a pessimist, I believe that we will find joint measures,” Slovenian Prime Minister Miro Cerar told Reuters in an interview.
Ministers had hoped to achieve consensus at Tuesday’s meeting rather than ramming through a vote in which the easterners would be in the minority, fearing this could further poison relations.
Hours earlier, the U.N. refugee agency, the UNHCR, said the 120,000 people the bloc was seeking to share out were equivalent to just 20 days’ worth of arrivals at the current rate.
“A relocation program alone, at this stage in the crisis, will not be enough to stabilize the situation,” UNHCR spokeswoman Melissa Fleming said, urging the EU to set up reception facilities able to handle tens of thousands of refugees at a time.
Refugees and migrants arriving in Greece and Italy have been streaming north across the continent to reach more affluent nations such as Germany, triggering disputes between governments in central and eastern Europe as they alternately try to block the flow or shunt the burden on to their neighbors.
Norway became the latest member of Europe’s 26-nation Schengen area, where people can normally travel across frontiers without showing a passport, to say it would intensify border controls.
The Organization for Economic Co-operation and Development said Europe could expect a record one million people to request asylum this year, and almost half would probably qualify to be taken in.
In Germany, by far the most popular destination, the head of domestic intelligence said there was a big worry that radical Islamists living in the country could try to recruit young refugees “who could be easy prey”.
EU leaders will hold an emergency summit on Wednesday at which they want to focus on ramping up aid for Syrian refugees in Turkey and the rest of the Middle East and tightening control of the bloc’s external frontiers.