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.
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".