MPs have backed Prime Minister Boris Johnson’s plan for the UK to leave the EU on 31 January.
They voted 358 to 234 – a majority of 124 – in favour of the EU (Withdrawal Agreement) Bill, which now goes on to further scrutiny in Parliament.
The bill would also ban an extension of the transition period – during which the UK is out of the EU but follows many of its rules – past 2020.
The PM said the country was now “one step closer to getting Brexit done”.
Labour leader Jeremy Corbyn told his MPs to vote against the bill, saying there was “a better and fairer way” to leave the EU – but six of them backed the government.
Mr Johnson insists a trade deal with the EU can be in place by the end of the transition period, but critics say this timescale is unrealistic.
The bill had been expected to pass easily after the Conservatives won an 80-seat majority at last week’s general election.
MPs also backed the timetable for further debate on the bill over three days when they return after the Christmas recess – on 7, 8 and 9 January.
The government says it will get the bill into law in time for the 31 January Brexit deadline.
By John Pienaar, BBC Deputy Political Editor
“Getting Brexit done” turned out to be a useful slogan, and no doubt it helped Boris Johnson win the election.
But almost nothing in politics is truly simple – least of all Brexit.
Today he passed a historic milestone – but the destination is still some way off.
Ruling out any extension to the Brexit transition period might mean Britain leaves with no deal – equally some in government believe it’s possible we could see a kind of phased trade deal with the EU, thrashed out over the months and maybe years ahead.