David Cameron got his way but saw his party torn in half as gay marriage legislation cleared its first hurdle in the Commons.
The Prime Minister hailed a "step forward for our country" after the House backed the proposals by a big margin of 400 to 175.
However, Labour and Liberal Democrat support masked a massive show of protest by Tories, with 136 taking advantage of a free vote to register opposition.
Just 127 endorsed the proposals at second reading, with 40 more either formally abstaining or not voting.
Northern Ireland Secretary Owen Paterson and Welsh Secretary David Jones voted against, while fellow Cabinet ministers Dominic Grieve and Philip Hammond stayed away.
However, Downing Street will be heaving a sigh a relief after no government members quit to join a rebellion over the timetabling of the legislation.
Responding to the result on Twitter, Mr Cameron wrote: "Strong views exist on both sides but I believe MPs voting for gay people being able to marry too, is a step forward for our country."
Labour leader Ed Miliband - who saw 22 of his own MPs rebel against the legislation - said it was a "proud day".
"The overwhelming majority of Labour MPs supported this change to make sure marriage reflects the value we place on long-term, loving relationships whoever you love."
Deputy Prime Minister Nick Clegg said it was a "landmark for equality".