Asylum-seekers who fled westward after being beaten back by tear gas and water cannon on the Hungarian-Serbian border have been returned to Serbia, where their ordeal began, after Croatia declared it could not handle the influx.
Thousands of refugees are still trapped, as the row continues between two countries at the centre of Europe's migration crisis.
The Hungarian government is accusing Croatia of breaching European laws by sending buses and a train full of unregistered migrants over the border. Croatia says it has been overwhelmed by the numbers arriving, with 17,000 arriving there over the last three days.
US Secretary of State John Kerry will meet Britain's Foreign Secretary Philip Hammond later to discuss the crisis.
The EU’s failure to find a unified response to the crisis left the tiny Balkan nation, one of the poorest in the bloc, squeezed between the blockades thrown up by Hungary and Slovenia and the unending movement of people flowing north from Syria, Iraq and Afghanistan.
With more than 17,089 arriving in just three days, Croatian prime minister Zoran Milanovic declared that his nation of 4.2 million could no longer cope and the asylum-seekers could not stay.
He said at a news conference: “What else can we do? You are welcome in Croatia and you can pass through Croatia. But go on. Not because we don’t like you, but because this is not your final destination...Croatia has shown it has a heart. We also need to show we have a brain.”
Across eastern Europe, barriers to the passage of refugees were thrown up, leaving them ever more desperate and confused.
Croatia declared itself overwhelmed and began sending refugees to Hungary by bus, and closing its border crossings with Serbia.
Slovenia halted rail services to Croatia and was sending refugees back there, while Hungary began building yet another razor-wire border fence, this time on its border with Croatia.
Caught in the middle were the masses of miserable men, women and children who have found their way to the wealthier European nations they wish to settle in blocked at every turn.
Most do not want to stay in Croatia – only one woman with children has requested asylum, the country’s foreign minister said.
Instead, they are trying to reach Western European countries, such as Germany, that have said they are welcome.
While Croatia is happy to let people pass through, Hungary and Slovenia say allowing them to cross their borders would violate EU rules.
Croatia is part of the EU but not a party to the Schengen treaty, which allows people to travel freely between 26 European countries without showing their passports.
Slovenia and Hungary are treaty members and say they are protecting Europe’s borders.
Events in the Balkans have underscored the failures of the EU's common asylum policy, which calls for a "joint approach to guarantee high standards of protection for refugees".
The finger-pointing among leaders has become vicious. Croatia and Hungary argued into the night, with Croatia saying the two countries had agreed to create a corridor for the refugees and the Hungarian foreign ministry calling that a “pure lie”.
Hungary’s foreign minister, Peter Szijjarto, called the Croatian prime minister’s handing of the migrant crisis “pathetic”.
He said: “Hypocrisy rules in Europe today. No one is saying honestly how big a challenge this is. This will not end soon.”
It is also causing tremendous strain on relations between neighbours in a region with a volatile past – Croatia, Serbia and Slovenia are all products of the break-up of Yugoslavia in the 1990s.
In a sign of the discord, Hungarian authorities seized a Croatian train carrying 1,000 refugees as it crossed into Hungary, accusing its neighbour of failing to co-ordinate the transport.
The train’s conductor was taken into custody and 40 Croatian police officers escorting it were disarmed, said homeland security adviser Gyorgy Bakondi.
Hungary denied assertions by Croatian officials that the transport had been co-ordinated by the two governments.
“These people were coming toward the border without prior consultation, without respecting official channels,” government spokesman Zoltan Kovacs said.
The UN refugee agency warned the crisis was being worsened by the contradictory national policies.
“The crisis is growing and being pushed from one country to another,” said Adrian Edwards of UNHCR. “You aren’t going to solve these problems by closing borders.”
The human misery was evident in Croatian towns like Beli Manastir, near the border with Hungary.
Refugees slept on streets, on train tracks and at a local petrol station. People scrambled to board local buses without knowing where they were going.
Hundreds of others were stranded on a large Danube River bridge in the Serbian town of Bezdan after Croatian authorities closed all but one border crossing.
The group, which included many women and children, stood in a no man’s land in the middle in the scorching heat for hours with little water or food.
Finally Serbian authorities began sending them 75 miles to the south, near the Serbian town of Sid, so they could enter Croatia illegally through unguarded cornfields.
Elsewhere, 19 Croatian buses carried refugees across the border to Beremend, Hungary, where they were put on Hungarian buses for transport to registration centres. Croatia also put some 800 on trains to Hungary.
UNHCR says more than 442,440 people have crossed the Mediterranean Sea to Europe this year and 2,921 have died trying.
The International Organisation for Migration puts those figures at 473,887 and 2,812.
The Vatican, meanwhile, took in one Syrian refugee family of four, as promised by Pope Francis.
The family from Damascus - a couple and two children, belongs to the Melkite Greek Catholic Church, an Eastern rite church, and is waiting on an asylum application decision from Italy.
Pope Francis has said the Vatican will take two families, and has called for every one of the 120,000 Catholic parishes across Europe to take in at least one.