European Union leaders have unanimously agreed to extend $A83 billion in new aid to Ukraine, the chairman of the summit says, overcoming weeks of resistance from Hungary.
Before the summit started, EU leaders piled pressure on Hungary to lift its block, telling Prime Minister Viktor Orban he had to pick sides in the existential challenge posed by Russia's war.
"We have a deal. Unity," European Council president Charles Michel said in a post on X.
"All 27 leaders agreed on an additional 50 billion euro support package for Ukraine within the EU budget."
Ukraine's President Volodymyr Zelenskiy welcomed the agreement, saying the aid would strengthen long-term economic and financial stability of his country as the war with Russia approaches its third year.
Ukraine's US dollar bonds gained on the news.
Ukraine, which relies heavily on foreign aid as it fights Russia, said it expected to receive the first tranche of 4.5 billion euros ($A7.5 billion) from the EU in March.
The agreement comes after weeks of wrangling with Orban, who vetoed the aid package last December.
Diplomats told Reuters that, in exchange for the green light from Hungary for the Ukraine aid, the bloc did not commit to releasing any of the billions of euros of EU funds intended for Hungary but frozen by Brussels over concerns about human rights and the rule of law in the country.
They said the deal included a yearly discussion of the package and the option to review it in two years "if needed" but no veto rights for Budapest.
Leaders of Germany, Poland, Belgium and Finland were among others arriving at the summit to say it was crucial the 27-country bloc agreed as one to offer aid to Ukraine from their joint budget through 2027.
Orban, who has cultivated close ties with Russia, has stepped up criticism of the EU's strategy to prop up Ukraine with financial and military aid as Russia's war against its neighbour nears the two-year mark.
On Thursday, Orban did not speak to journalists on arriving at the summit to decide on the EU strategy.
Instead, he posted pictures of himself on social media walking around tractors ahead of a farmers' protest in Brussels on Thursday.
He said later on Thursday that Hungary accepted the EU deal after receiving an offer for a control mechanism that guarantees reasonable use of the money.
Hungary accepted the deal with conditions that withheld EU funds from Hungary will not end up in Ukraine and that Ukrainian aid will be used sensibly, Orban said in a video on Facebook, adding he was pleased markets reacted positively to the agreement.
German Chancellor Olaf Scholz had made clear what the expectation of the other 26 EU countries was on Thursday, saying the EU was "a community in which all stand in solidarity".
Polish Prime Minister Donald Tusk agreed: "As a community, we cannot give up on this. Today is the moment when Prime Minister Orban needs to see time for his games is over. He has to consider if he is in, or out," he told reporters.
The EU's decision comes at a time of uncertainty over the future of US aid to Ukraine.
Some EU officials said that, without fresh budget support, Ukraine would run out of cash in March.
Orban has had many bitter run-ins with the EU, haggling over billions of euros earmarked for Budapest in the shared EU budget but frozen over concerns about democratic backsliding.