The Constitutional Court said the ban on successive adoption by gay partners breached their rights to be treated equally, and lifted it with immediate effect.
This means that when one person has adopted a child, their same-sex partner will now be able to become the official second parent by also adopting. But the decision still falls short of the adoption rights of married heterosexual couples.
The rules in effect until now have breached the rights of the prospective parents as well as the children, Ferdinand Kirchhof, chair of the Constitutional Court senate which ruled on the matter.
The discrimination was not justified, he said, adding that the additional adoption by the second partner served the interests of the children concerned. This could serve to "develop a stabilizing developmental and psychological effect," he said.
The legal situation of the child concerned would also be improved, the court said - particularly in matters of financial support and inheritance.
The test case being considered was that of a doctor from Münster whose partner had adopted a girl from Bulgaria in 2004. The child, now 13, lives with the couple in a joint household, but a court had rejected the doctor's application to become a second parent. This decision was overruled on Tuesday.
The high court judges also gave the government until the end of June 2014 to implement new laws, but said its ruling was effective immediately.
Renate Künast, parliamentary leader of the Greens, said this was a "victory for children."
"Family is where adults take on responsibility, no matter whether straight or gay," she said in a statement.
But the ruling does not touch on the fact that people in civil partnerships cannot adopt children as a couple - that right is restricted to married couples.
Germany introduced registered partnerships of same-sex couples in 2001, granting them similar rights to those of married couples, apart from in tax matters and adoption.