Germany is expected to legalise same-sex marriage on Friday, joining many other western democracies in granting gay and lesbian couples full rights, including adoption.
The election-year bill is being pushed by Chancellor Angela Merkel's leftist rivals who pounced on a U-turn she made Monday -- a manoeuvre that left many of her conservative lawmakers fuming.
Barring any 11th-hour hiccup, the lower house is set to approve the law hours before the Bundestag heads into summer recess.
Gay and lesbian groups cheered the push for marriage equality in Germany where so-called civil unions were legalised in 2001.
"It's a real recognition, so it warms the heart," said French engineer Christophe Tetu, 46, who lives in Berlin with his partner Timo Strobel, 51.
"We're thinking about having a party, getting married and using our new rights to protect our relationship," he told AFP.
Strobel said he too was "overjoyed" the couple would be able to show family and friends "that we are committed to each other, that we will stay together and we will spend our lives together".
If the law passes it would likely take effect before the end of 2017.
Renate Kuenast of the Greens party, which has pushed for decades for LGBT community rights, quipped cheerfully: "I would advise all registry offices in the country to boost staff numbers."
The rapid series of events kicked off with an on-stage interview Merkel gave Monday to women's magazine Brigitte, in which an audience member asked her: "When can I call my boyfriend my husband if I want to marry him?"
Merkel, who long opposed gay marriage with adoption rights citing "the well-being of the children", replied that her thinking had shifted since she met a lesbian couple who cared for eight foster children.
She said she favoured a vote at an undefined future time when all lawmakers could follow their conscience rather than a party line.
Many read the surprising comments as a move to deny opposition parties of a strong campaign issue before September 24 elections.
Merkel's coalition allies the Social Democrats (SPD), as well as the Greens, far-left Linke and pro-business Free Democrats have all declared a gay marriage law as a red-line demand and precondition for an alliance.
And on Tuesday, after much buzz on social media, SPD chancellor-candidate Martin Schulz took Merkel at her word and broke coalition ranks to call for an immediate vote -- a move the CDU slammed as a "breach of trust" after four years of joint rule.
Merkel indignantly labelled the political ambush and hasty rush to vote on such a weighty issue "sad and, above all, totally unnecessary"
But her change of stance leaves the right-wing populist Alternative for Germany (AfD) as the only party to oppose same-sex marriage.
Conservative daily the Frankfurter Allgemeine Zeitung predicted that, after the vote, "it will be said Angela Merkel has avoided another stumbling block to post-election coalition talks".
"But the CDU will also have lost its right to be called a conservative party –- and instead now appears willing to throw any conservative values overboard in order to keep up with the times."
Markus Ulrich of the Lesbian and Gay Federation in Germany said Merkel had long argued against gay marriage "in an emotional way and never with real arguments".
"It's very good that she took some time to better understand the reality of same-sex families and couples, in order to get a better picture of the situation.
"We think it's very good and, even if this is happening only because of the electoral campaign, it doesn't matter."