The legislation, which was already backed by the Senate in November, was approved by 91 of the 122 deputies in the lower house of the Belgian parliament following years of heated debate.
The coalition government of Liberals, Socialists and Greens welcomed the adoption of the controversial law.
"Mentalities have changed. There is no longer any reason not to open marriage to people of the same sex," said Justice Minister Marc Verwilghen during a late-night debate before the law was voted through.
Green member Kristien Grauwels said the law "makes it clear that any enduring and loving relationship is appreciated in the same way in our modern society."
The legislation, which will come into effect in the summer, gives married gays and lesbians more rights than cohabiting homosexuals and almost identical rights to heterosexual couples.
Most notably, married homosexuals will automatically have inheritance rights to the goods and property of their deceased partner. In the past, these were conferred on the parents of gay couples.
In addition, married homosexuals will receive the same fiscal breaks as heterosexual couples, will be allowed to file taxes jointly, will benefit from unemployment pay-outs should one of the partners be out of work and will have the same financial responsibilities in case of divorce.
However, unlike the Netherlands -- which became the first country to legalize same-sex weddings in 2001 -- homosexual couples will not be allowed to adopt children, nor will the lesbian partner of a mother be considered the parent of the child.
The majority of parliamentarians argued that the new law granted legal, not biological rights. However, Green and Socialist members said they regretted the denial of adoption clause.
"In spite of the very symbolic value of this law and the positive signal it sends to the gay community ... it remains blatantly hypocritical in one respect: a single person can adopt a child, but not a homosexual couple," said Socialist deputy Karine Lalieux.