The UK will provide an additional £1bn in military aid for Ukraine, a near-doubling in its support for the fight against the Russian invasion.
The new funding takes the military aid given to Kyiv to £2.3bn - and the UK has also spent £1.5bn in humanitarian and economic support for Ukraine.
said British spending was "transforming Ukraine's defenses".
The pledge came after President Zelensky urged Nato leaders to do more to help Ukraine's war effort.
Mr Zelensky told Nato leaders the monthly cost of defence for Ukraine was around $5bn (£4.12bn).
The UK is second only to the US in terms of military aid for Ukraine - the US recently approved a $40bn (£33bn) package of support.
The new British aid will go towards paying for "sophisticated air defence systems", drones, electronic warfare equipment, and "thousands of pieces of vital kit", the UK government said.
The new £1bn is set to come from departmental underspends, the UK government said, plus £95 million from the Welsh and Scottish governments' budgets.
An "underspend" means departments spent less than anticipated, not that government finances were in surplus overall. Public sector borrowing was £151.8bn in the year ending March 2022, according to the Office for National Statistics.
Announcing the extra support, the government claimed the equipment was the first step to helping Ukraine recover territory lost to Russia, on top of their "valiant defence".
But questions remain about whether the aid will be sufficient.
Addressing Nato leaders at their summit in Madrid on Wednesday via video link, Mr Zelensky said they needed more modern weapons systems and artillery to "break the Russian artillery advantage".
"Russia still receives billions every day and spends them on war. We have a multibillion-dollar deficit, we don't have oil and gas to cover it," Mr Zelensky said.
Also speaking in the Spanish capital, Mr Johnson
said: "Putin's brutality continues to take Ukrainian lives and threaten peace and security across Europe.
"As Putin fails to make the gains he had anticipated and hoped for and the futility of this war becomes clear to all, his attacks against the Ukrainian people are increasingly barbaric.
"UK weapons, equipment and training are transforming Ukraine's defences against this onslaught."
Foreign secretary Liz Truss told the BBC the UK's contribution would enable the Ukrainians to succeed as "they are not just fighting for themselves, they are fighting for all of us".
But when asked if £1bn was anywhere near enough the amount needed by Ukraine, she said the UK was helping the nation kickstart its economy and reconstruct.
She added: "It's not a blank cheque and we are providing specific amounts of funding... we've been very clear with them we will not let them down.
"We will continue to support them in the long term in whichever way we can, in a way that we can afford."
The UK's commitment comes as the members of Nato agreed a 10-year "strategic concept" to address future threats to European and global security.
At the same time, the US government announced it will increase its military presence across Europe as Nato agreed a "fundamental shift" in its response to Russia's invasion.
The UK currently spends around 2.3% of GDP on defence, which is above the 2% target set by Nato and among the highest of member nations.
However, the defence budget has been the source of tension between No 10 and Ministry of Defence (MoD), amid calls for more funding for the armed forces.
Defence Secretary Ben Wallace told reporters in Madrid: "To be fair, No 10 does say 'if you include the extra Ukrainian spend', they have put a sort of caveat to that.
"Because of course it isn't core defence spending. I mean, it is not my core budget, it doesn't buy me any more planes, tanks or ships."
Wallace added it was "obliquely helping Britain's defence because we're helping Ukraine".
But Labour's shadow defence secretary John Healey said government plans to cut another 10,000 soldiers from the army was embarrassing for the UK.
He told the BBC's Radio 4 Today programme: "It's not responding to the greater threats we face, and it's putting at risk our Nato obligations."
But he declined to answer if a Labour government would spend more on defence.
As well as providing aid, the UK is also training Ukrainian troops.
The UK trained more than 22,000 members of the Ukrainian Armed Forces as part of Operation Orbital, which ran from 2015 until the invasion in February.
And earlier this month, Mr Johnson
announced a new UK-led training program for Ukrainian forces, which will take place overseas. The MoD said it has the potential to train up to 10,000 troops every 120 days.
Over the past few weeks, more than 450 Ukrainian troops have been receiving training in Wiltshire to operate the weapons provided by the UK.