The Netherlands approved same-sex marriages two years ago, but unlike its northern neighbor, Belgium did not go as far to allow such couples to adopt children.
The principle of approving gay marriages was already a breakthrough in itself.
"It makes it clear that any enduring and loving relationship is appreciated in the same way in our modern society," said Kristien Grauwels, a Green Party legislator.
In the House of Representatives, the bill prevailed in a 91-22 vote with nine abstentions, with the opposition Christian Democrat CdH and the extreme right Vlaams Blok voting against. The bill was already approved by the Senate.
Belgium already was one of several European nations, including Denmark, Hungary, France and Portugal, which have laws recognizing same-sex unions and granting legal, tax and property rights.
Grauwels was disappointed the parties would not back the approval of adoptions for such couples. "It still was a step too far for several parties" in this country, which has a long Roman Catholic tradition, she said.
In the Netherlands, one in every 13 same-sex couples, mostly women, have by now adopted children.
During the public debate and vote, dozen of lesbian and homosexual couples attended the proceedings, some holding hands as the legislators approved the legislation.
Because of international legal constraints it will be tough for Belgians to enter same-sex marriages with foreigners, since only the Netherlands now has a similar system in place.
Even Belgian same-sex couples wanting to live abroad could well encouter difficulties, warned Justice Minister Marc Verwilghen.
The first such marriages will only be concluded four months after the publication in Belgium's official journal.