By Laura Gozzi and Sarah Rainsford in Kyiv, BBC News
All 27 EU leaders have agreed a €50bn (NZD$87 billion) aid package for Ukraine, after Hungary stopped blocking the deal.
Ukrainian President Volodymyr Zelensky welcomed the new funding, saying it would strengthen the country's economic and financial stability.
Ukraine's economic ministry said it expects the first tranche in March.
There had been fears Hungary's PM would again block the package as he did at a European summit in December.
Viktor Orban, Russian President Vladimir Putin's closest ally in the EU, had said he wanted to force a rethink of the bloc's policy towards Ukraine and questioned the idea of committing funds for Kyiv for the next four years.
The new funding promise comes as aid from the US - the largest provider of military support for Kyiv - is being held up by Congress.
"I think it will be an encouragement for the United States also to do their fair share," European Commission President Ursula von der Leyen said.
The agreement was announced less than two hours after the summit started, surprising many observers who had expected talks to go on much longer due to the depth of disagreement between Orban and the other EU leaders.
On the streets of Kyiv, people welcomed the news. "It's great. All this support, money, ammunition, humanitarian help are all important for our country, and we thank all the world for supporting us," one man told the BBC.
However, this EU funding package is not for the frontline - it is for life in the rear. War is an expensive endeavour, and budget revenue in Ukraine is being swallowed up funding the fighting.
But the Ukrainian government still needs to pay for pensions, state salaries - down to keeping the lights on.
There were warnings such payments could be delayed, had the EU not approved the aid.
Keeping life for its citizens running as smoothly as possible is vital for the government to maintain domestic support for the war effort, even as Ukraine pushes for continuing backing from its allies abroad.
The new deal includes a yearly discussion of the funding package and the option to review it in two years, "if needed" - and only at the Council's discretion.
Orban had been pushing for a yearly vote on the package, which could have left the deal exposed to an annual veto threat from Hungary.
Under the agreement, one precondition for the support for Ukraine is that it upholds the "rights of persons belonging to minorities" - a possible reference to Orban's longstanding concern about the ethnic Hungarian minority in Ukraine.
Artillery for Ukraine was also discussed at the summit. Earlier this week, the EU acknowledged that it would only be able to deliver 52 percent of the one million ammunition rounds it had promised to send by March. Today, European Council President Charles Michel said the EU is determined to make sure Ukraine gets the equipment it needs to defend "their country and their future".
In a video address to European leaders, President Zelensky said the EU had "proven that its word matters, and its promises work for the interests of entire Europe".
He referred to the fact that US aid is being blocked up by Congress, saying that today's announcement would send a "signal across the Atlantic ... that the international rules-based world order will withstand all challenges."
"Europe sets the tone for global affairs - with its unity," Zelensky added.
Polish Prime Minister Donald Tusk, who had been highly critical of what he called Orban's "strange and egotistic game," posted on X: "Viktor Orban could be 'persuaded '... Let's move on."
The EU had been withholding €20bn of funds for Hungary because of concerns about human rights and corruption in the country.
Today's announcement of a new aid package comes after European leaders agreed to open EU membership talks with Ukraine in December - a decision hailed at the time as "a victory" for his country.
This story was originally published by the BBC.