The Federal Constitutional Court decided in favour of a woman in the southern city of Schweinfurt who wanted to adopt the now three-year-old child of her female partner, with the consent of the father and social services.
The lower court had argued that such a move would be unconstitutional because it placed the rights of the partner of a parent above those of a biological parent.
The constitutional court rejected this argument on Tuesday, saying that life partners who assume the role of a parent to a child have the right to formalise that role.
"The earlier decision failed to consider the fact that the role of a child's parent is not only determined by his or her biological progenitor but based on the social-familial community caring for the child," it said.
German lawmakers cleared the way in 2001 for gays and lesbians to register "life partnerships" - a step short of legal marriage - and to subsequently adopt their partners' biological children.
But homosexual couples in Germany do not have the right to adopt children to whom they have no relation, unlike in several other European countries such as the Netherlands and Spain.