MPs will vote later on whether to back the prime minister's plan for the UK to leave the EU on 31 January.
MPs will vote later on whether to back the prime minister's plan for the UK to leave the EU on 31 January.
The EU (Withdrawal Agreement) Bill would also ban the government from extending the transition period - where the UK is out of the EU but follows many of its rules - past 2020.
Boris Johnson said it would allow the UK to "move forward".
Opponents say the bill leaves the UK's future uncertain, and agreeing a trade deal with the EU could take many years.
But the government insists one can be in place by the end the transition period.
The result of the Commons vote on the bill is expected at about 15:00 GMT.
- LIVE: MPs to vote on Brexit
- What could Brexit look like by 2021?
- Brexit and NHS dominate government agenda
- Brexit deal deadline 'dangerous and misleading'
- Government to shut Brexit department on 31 January
The withdrawal bill, which would implement the Brexit agreement the prime minister reached with the EU in October, was introduced in Thursday's Queen's Speech, setting out the government's priorities for the next year.
Beginning the debate in the Commons, the prime minister said his bill "learns the emphatic lesson of the last Parliament" and "rejects any further delay".
"It ensures we depart on 31 January. At that point Brexit will be done. It will be over," he told MPs.
"The sorry story of the last three years will be at an end and we can move forward."
Mr Johnson said it also "paves the way" for a "ambitious free trade deal" with the EU.
"The oven is on, it is set at gas mark four, we can have it done at lunchtime and the new deal I negotiated will restore our great institutions," he said.
The bill's second reading is the first chance MPs have had to debate its main principles in the House of Commons.
With the Conservatives having won an 80-seat majority at last week's general election, the bill is expected to pass easily, before it moves on to further scrutiny by MPs and the House of Lords.
MPs have been given a further three days - 7, 8 and 9 January - to continue their debate in the Commons.
The government says it will get the bill into law in time for the 31 January Brexit deadline.
An earlier withdrawal agreement - reached between previous Prime Minister Theresa May and the EU - was rejected three times by MPs.
There are changes to the previous bill, which was backed by the Commons in October, but withdrawn by the government after MPs rejected a three-day deadline for getting it through Parliament.
The changes include:
- Legally prohibiting the government from extending the transition period - during which a trade deal between the UK and EU will be discussed - beyond 31 December 2020
- Allowing more UK courts to reconsider European Court of Justice rulings that have been retained in UK law after Brexit
- Requiring ministers to report annually to Parliament on disputes with the EU under the prime minister's withdrawal agreement
- Repealing spent legislation that "now serves no purpose"
The bill also loses a previous clause on strengthening workers' rights.
The government now says it will deal with this issue in a separate piece of legislation, but the TUC has warned that the change will help "drive down" working conditions.
What a difference a year makes.
It was back in January that Theresa May embarked on a series of Commons defeats as she tried and failed to begin the process of getting her Brexit plans approved.
It was only in October that Boris Johnson paused his own efforts when MPs rejected the proposed timetable for getting the Withdrawal Agreement through parliament.
But now, following the general election and with an 80-strong Conservative majority, things look very different.
And Boris Johnson knows it, claiming that it's time for "certainty" after years of "delay and rancour".
But the bill will come in for criticism. Gone are clauses about workers' rights - Downing Street says that will be dealt with in separate legislation.
And added: a provision ruling out any extension to the transition period beyond December 2020.
The process of ratifying the Withdrawal Agreement Bill will continue in the New Year but Friday's vote is, in part, designed to signal that the UK is now motoring towards that January 31 departure date.
Labour leader Jeremy Corbyn said the government's "mishandling of Brexit" had "paralysed the political system," divided communities and was a "national embarrassment".
He said MPs "have to respect the decision" of the EU referendum in 2016 "and move on".
"However, that doesn't mean that we as a party should abandon our basic principles," he said.
"Labour will not support this bill as we remain certain there is a better and fairer way for this country to leave the EU."
He said there had to be something better than this "terrible" Brexit deal that would not "sell out public services" or "sacrifice hundreds of thousands of jobs in the process".
The SNP's Westminster leader Ian Blackford said: "Scotland still totally and utterly rejects Brexit, yet the prime minister is blindly hurtling towards the cliff edge with these Brexit plans that will leave us poorer, leave us worse off."
On the change in the bill that would legally prohibit the government from extending the transition period beyond 31 December 2020, Mr Blackford said: "By placing that deadline, that risk of a no-deal Brexit, that we all fear is very much, is on the table again."
But Brexit Secretary Steve Barclay rejected the criticism, saying the bill offered "increased scrutiny" of the Brexit process to Parliament.
In the 2016 referendum, the UK voted by 52% to 48% to leave the EU. But the subsequent difficulties in getting Brexit through Parliament have caused gridlock at Westminster.
https://www.bbc.com/news/uk-politics-50854323