Berlin has shifted away from a traditionally pacifist stance since Moscow sent its forces into Ukraine last year, becoming one of Kyiv’s biggest military backers.
Parliament’s budget committee gave the green light for about eight billion euros ($8.7 billion) to be spent on directly purchasing weapons and equipment for Ukraine.
Around 12 billion euros in total will be released related to the Ukraine conflict over the next decade or so.
The other four billion will go to the German military to replenish stocks.
The Bundeswehr was already underfunded before the Ukraine war, and the situation has worsened as Berlin rushes cutting-edge gear to Kyiv.
The news represents a “very important step with which we make it clear that we are supporting Ukraine in the long term in its fight against (Russian President Vladimir) Putin,” said German Defence Minister Boris Pistorius.
The agreement will allow supplies including armoured vehicles, tanks, and ammunition to be delivered to Ukraine in the coming years, according to a statement from the minister.
The German army will also be able to buy new equipment.
Critics say the Bundeswehr has suffered from years of neglect and underinvestment, a product of the country’s deep-rooted post-war guilt.
After the Russian invasion of Ukraine, Chancellor Olaf Scholz pledged a major funding boost for the military.
But progress has been slow — none of a special €100 billion fund earmarked for the overhaul has yet been spent, it emerged earlier this month.
A senior lawmaker tasked with scrutinising the armed forces meanwhile said they were lacking in everything, with soldiers living in “pitiful” barracks.
This week, Scholz confirmed that promised Leopard battle tanks had been delivered to Kyiv.