Croatia has opened its border with Serbia, removing one of the bottlenecks for thousands of stranded migrants trying to make their way north.
About 3,000 people had been stuck in cold and wet weather in the Serbian border village of Berkasovo, after Croatia moved to curb new arrivals.
The UN refugee agency (UNHCR) had described conditions there as "dire".
Many remain stranded near the Croatia-Slovenia border. The Balkan route has been squeezed by restrictions.
Hundreds of thousands of migrants, many from Syria, Africa and Afghanistan, have been making their way from Turkey to the Balkans in recent months, in a bid to reach Germany, Sweden and other EU states.
UNHCR spokeswoman Melita Sunjic, who is at the Berkasovo crossing, said late on Monday: "Without any announcement, the borders opened. Everybody rushed."
Describing the conditions at the camp there earlier, she had said: "We have a lot of small children. We have disabled people, we have people who got sick on the road.
"This is not a place for people, they can't sleep - they can just stand upright in the mud."
Croatian buses are now taking the thousands of migrants who crossed the border to a nearby reception centre.
Croatia moved to limit the flow of migrants at the weekend, when Hungary closed its southern border and Slovenia announced its own restrictions, fuelling fears that migrants could get stuck in Croatia.
In recent days, Croatia sent at least two trains and several busloads of migrants north towards the border with Slovenia.
However Slovenian officials have accused the Croatian government of breaking an agreement to limit such transfers to 2,500 people a day, and have announced new restrictions on people coming in.
About 500 people spent Sunday night in the open in the Slovenian border village of Trnovec.
A further 1,800-2,000 slept on a train held on the Croatian side of the border. Officials told them they could stay temporarily in Croatia or try to make their own way into Slovenia.
Hungary, citing security concerns, has closed its borders with Serbia and Croatia, forcing migrants to switch to a slower route via Slovenia.
Before Monday's mass crossing, the UNHCR said 10,000 migrants were stranded in Serbia - with more than 6,000 entering from Macedonia on Monday alone.
Some Serbian officials have indicated they may in turn hold back arrivals from the south.
Germany's welcome for Syrian migrants continues to create internal tensions. Thousands of people took part in a rally organised by the Pegida organisation in Dresden on Monday evening to mark the first anniversary of the group, which campaigns against "Islamisation".
More than 600,000 people, most of them Syrians, have reached Europe so far this year compared with just over 200,000 for the whole of 2014.
Germany has said it expects 800,000 asylum seekers this year, but it is believed the number could be as high as 1.5 million.