Under German law, every political party receives funding from the state. The sum is partly determined by how well it is represented in the state, national and European parliaments, as well as by the amount it raises on its own.
The NPD received €1.3 million from public coffers in 2015, and €1.4 million in 2014.
But the lower house of parliament on Thursday voted 502-57 to end financing for "parties hostile to the constitution".
"Tax receipts for the NPD are a direct investment in far-right incitement," said Justice Minister Heiko Maas, stressing that "enemies of democracy must not be financed by the state".
Welcoming the move, the Central Council of Jews in Germany said: "It is intolerable that parties can use taxpayers' funds to spread propaganda that is hostile to democracy... or, in the case of the NPD, that is Nazi related.
"The law can finally put a stop to this."
The decision for the legal change came after Germany's upper house of parliament lost a court case seeking to ban the NPD.
The country's highest court threw out the case in January, ruling that the xenophobic fringe outfit was too insignificant to spell a real threat to the democratic order.
The drafters of Germany's post-war constitution set high hurdles for banning a party, mindful of the elimination of dissent in Hitler's Germany.
Only two political parties have been outlawed since 1945 - the SRP, a Nazi successor party, in 1952, and the West German Communist Party (KPD) in 1956.
The NPD, founded in 1964 as a successor to the neo-fascist German Reich Party, calls for "the survival and continued existence of the German people in its ancestral central European living space" - or as their slogan says, "Germany for the Germans".
With around 6,000 members, the NPD, which at the height of its movement had seats in several state parliaments, now only has one representative, Udo Voigt, in the European Parliament.