"Choose Love," read one banner in the about 100-strong crowd outside Chancellor Angela Merkel's office and near the Reichstag building housing the lower house.
Champagne corks popped and whoops, cheers and whistle blasts went through the crowd braving summer rain as news broke that lawmakers inside the chamber had passed the historic bill.
Among those celebrating from the lesbian, gay, bisexual and transgender (LGBT) community was Sören Landmann of the "Marriage for All" initiative.
"I got married one year ago in Scotland because we were not allowed to do it in Germany," he told AFP.
"I am inconceivably happy that a couple that would like to get married won't have to go abroad for it anymore, and that they can now get married here in a very normal way."
Inside the chamber, where supporters threw confetti, the 393-226 vote spelt a victory especially for Greens party politician Volker Beck, 56, a veteran gay rights campaigner who was ending a 23-year career as a lawmaker Friday.
"Today a bastion has fallen," he told German news agency DPA on the move to allow full marriage rights rather than the civil unions introduced in 2001.
He greeted the speedy vote, which was forced by leftist parties three months before September 24 elections, saying it "spares us an election campaign fought on the backs of lesbians and gays".
'Vote for love'
The law was pushed by centre-left Social Democrats, Greens and the far-left Linke party but also supported by 75 conservative lawmakers after Merkel allowed them to vote their conscience.
Merkel herself said she voted against the measure, based on the belief that a marriage is between a man and a woman.
The view was shared by Berlin Archbishop Heiner Koch, who voiced regret about the "watering down" of a sacred institution.
Marriage as enshrined in the German constitution aimed to protect those "who as mother and father give life to their children", he said.
Most Germans however favour the change, which follows similar laws in many western democracies, with about three-quarters of Germans support, according to recent surveys.
The Lesbian and Gay Association, which has pushed for the reform since 1990, greeted the outcome, declaring that "Germany has voted for love".
"This is a historic day!" it said in a statement. "Not only for lesbians and gays, but also for a more just and democratic society."
Marriage would from now be based "not on gender but on love, commitment and the promise to be there for each other in good times and in bad".
The next step would be to achieve full societal acceptance that guarantees everyone the right to "be different, at any time, in any place, without fear and the threat of hostility".