European Union leaders have agreed to open membership talks with Ukraine even as it continues to fight Russia's invasion, but they could not agree on a 50 billion euro ($A82 billion) package of financial aid for Kyiv due to opposition from Hungary.
At a summit in Brussels, other leaders bypassed objections from Hungarian Prime Minister Viktor Orban by getting him to leave the room while they took the historic step of agreeing to start accession negotiations with a country at war.
But they could not overcome resistance from Orban - who maintains close ties to Russia - to a revamp of the bloc's budget to channel vital financial support to Ukraine and provide more cash for other EU priorities such as managing migration.
They ended talks on the financial package, which requires unanimity of the 27 EU leaders, early on Friday and said they would try again in January, with some voicing optimism a deal could be clinched then.
Officials said leaders of 26 of the EU's 27 member countries were satisfied with a compromise budget proposal put forward by summit chairman Charles Michel.
Orban has argued Ukraine should not get such large amounts of money from the EU budget because it is not part of the bloc.
Other leaders have assured Kyiv they channel aid to Ukraine outside the EU budget if Budapest maintains its blockade.
The financing news struck a bittersweet note for Ukraine, coming just hours after leaders agreed to open membership talks.
Although membership would likely be many years away, the decision at a summit in Brussels takes Ukraine a step closer to its long-term strategic goal of anchoring itself in the West and liberating itself from Moscow's orbit.
The move came at a critical time for Ukraine, after its counteroffensive against Russian forces has failed to make major gains and with US President Joe Biden so far unable to get a $US60 billion ($A89 billion) package for Kyiv through the US Congress.
"This is a victory for Ukraine. A victory for all of Europe. A victory that motivates, inspires, and strengthens," Ukrainian President Volodymyr Zelenskiy declared.
"I congratulate every Ukrainian on this day ... History is made by those who don't get tired of fighting for freedom."
The leaders also agreed to accession talks with another former Soviet republic, Moldova, and to grant another, Georgia, the status of membership candidate.
The leaders said they would also start membership talks with Bosnia once it had undertaken certain political reforms.
Orban had cited corruption and other issues in arguing Ukraine was not ready for EU talks but EU diplomats suspected he was using the issue as a bargaining chip to try to unlock EU funds frozen over concerns about the rule of law in Hungary.
On Wednesday, the European Commission restored Hungary's access to up to 10.2 billion euros in refunds for economic projects after finding it had fulfilled conditions on the independence of its judiciary.
Orban stood by his objections to membership talks even after the decision was taken.
"Hungary's stance is clear, Ukraine is not prepared for us to start talks on EU membership," he said, calling the decision to start talks "irrational" and "inappropriate".
In the midst of war, geographically bigger than any EU member and with a population of 44 million, Ukraine presents some unique challenges for admission to the 27-member bloc.
But membership talks will likely take years and will not start immediately.
First, the EU will have to agree to a negotiating framework for the talks, which will happen once Ukraine meets outstanding requirements on democracy and the rule of law.