Children born to non-EU parents can now retain both German and their parents' citizenship, a bill passed on Thursday has decided.
The rule change applies to anyone born in Germany who has lived in the country for eight years or gone to school in the country for six years before the age of 21.
Alternatively a graduation certificate from any school or apprenticeship programme in Germany will also be accepted as proof of eligibility to apply for dual citizenship.
In the past, children born in Germany into families with non-EU backgrounds were granted dual citizenship only until the age of 23, when they were forced to choose between them.
Only EU nationals and those granted special permission were allowed to hold a German passport and one from another country.
By far the largest group benefiting from the reform will be the children of Turkish immigrants.
"You belong to Germany - not just based on feelings but also on paper, not only when it comes to a [football] public viewing event, but also when it comes to the authorities," Interior Minister Thomas de Maizière said.
According to the approved bill, 40,000 young people are forced to choose between nationalities in Germany every year. The new rules are expected to free the overwhelming majority of these people - 90 percent - from this obligation.
The government's integration commissioner, Aydan Özoğuz, called the new rules "the biggest reform of citizenship laws since 1999."
Representatives for Germany's Turkish community have opposed the reform. They said the new rules did not improve the status of children born before 1990 or their parents - who had already been forced to opt either for German or Turkish nationality.
Thursday's vote came after long negotiations between Chancellor Angela Merkel's conservative Christian Democrats (CDU) and the Social Democrats (SPD), her centre-left coalition partner.
Members of the CDU's Bavarian sister party, the CSU, remained sceptical.
"Despite all prophecies of doom, in the future there will be no general dual citizenship in Germany," said CSU lawmaker Stephan Mayer.
In exchange for CDU and CSU support, the SPD agreed to designate Bosnia and Herzegovina, Macedonia and Serbia "safe countries of origin."
Under this status it will be harder for citizens of the three countries to seek asylum in Germany and easier for German authorities to deport those already in Germany.
Leaders of the opposition Left and Green parties said the changes were an attack on the constitutionally guaranteed right to asylum.
They claimed the government ignored the discrimination of Roma and Sinti and homosexuals in the three Balkan countries.
States could thwart reforms
Both measures passed on Thursday require the approval of Germany's states before going into effect.
Some states have already expressed concerns over the new asylum rules. This includes states governments where the SPD governs in a coalition with the Greens or the Left.
A Bavarian minister threatened her state would try to stop the passport reform if the asylum changes do not pass.
"I expect that state governments, despite pressures in their own coalitions, will act responsibly" and support the federal government, said Christine Haderthauer (CSU).