Granting all couples marriage equality would put Germany in line with a host of other democracies, including the United States.
The reform would grant full marital rights, including child adoption, to gay and lesbian couples, who in Germany are now only able to enter so-called civil unions.
Granting all couples marriage equality would put Germany in line with a host of other democracies, including the United States, Canada and many EU member nations.
"The path to equality is open," tweeted lawmaker Renate Kuenast of the Greens opposition party, which has campaigned for gay rights for decades, after a committee paved the way for a Friday vote.
But even as the LGBT community celebrated many conservative politicians were fuming.
The speedy parliamentary vote before the summer break was forced by Merkel's rivals who pounced on her U-turn on same-sex marriage she voiced in an on-stage interview Monday evening.
The usually cautious chancellor said her thinking had shifted since she met a lesbian couple who lovingly cared for eight foster children in her Baltic Coast electoral district.
Merkel had previously opposed gay marriage with adoption rights because of concern about "the well-being of the children".
The chancellor added that she favoured a vote on the issue, at an undefined future stage, in which all lawmakers could follow their conscience rather than the party line.
Merkel's comments were widely read as a tactical move to deprive opposition parties of a campaign issue before September 24 elections.
Her coalition partners the Social Democrats (SPD), as well as the Greens, far-left Linke and pro-business Free Democrats, have declared same-sex marriage as a red-line demand and condition for entering into any future coalition.
By signalling that she was open on the issue, Merkel kept the door open to various alliance options for her Christian Democrats (CDU) and its Bavarian sister party the CSU.
But as Merkel's comments sparked hot debate under the trending Twitter hashtag #EheFuerAlle (MarriageForAll), momentum quickly built to force an early vote.
SPD chancellor-candidate Martin Schulz, eager to close a yawning poll gap with front-runner Merkel, said "we will take her at her word" and broke coalition ranks to call for an immediate vote, backed by the Greens and Linke parties.
The CDU slammed the SPD for its "breach of trust" after four years of joint rule.
The spat erupted days after Schulz had infuriated conservatives by accusing Merkel of an "attack on democracy" for her supposed tactic of making politics so dull that opposition voters don't bother showing up on polling day.
Merkel held a closed-door meeting with her lawmakers Tuesday and confirmed they would be free to vote according to their conscience -- which suggests the bill will sail through the chamber.
A recent survey indicated that more than 80 percent of Germans are in favour of marriage equality.
But many commentators criticised the undignified power play that paved the way for the historic vote.
"This could have been a great moment for Germany's parliament. But the CDU/CSU have been forced into a corner and all the joy has been drained," Die Welt daily wrote.
It said the developments could be seen either as a clever move by Merkel, or as her being "outfoxed" by leftist parties.
Either way, it said, "marriage has been politicised. The real issue has been pushed into the background. What a shame."
The vote will leave the right-wing populist Alternative for Germany (AfD) as the only party to oppose same-sex marriage.
Its co-leader Frauke Petry said the AfD stands for "traditional family values" and sarcastically thanked Merkel for abandoning another conservative position "for purely tactical considerations".