The cabinet has backed a draft withdrawal agreement between the UK and the EU, Theresa May has said.
The prime minister was speaking after what she said was a “long, detailed and impassioned debate” in a five-hour cabinet meeting.
She said it was a “decisive step” in the progress of Brexit, and would allow the agreement to be finalised.
The EU’s chief negotiator said it was in both sides’ interests.
But leading Brexiteer Jacob Rees-Mogg described it as a “rotten deal”.
BBC political editor Laura Kuenssberg said the cabinet was “certainly not unanimous”, with nine ministers speaking out against the deal.
In her statement outside Downing Street, Mrs May said the agreed package was “the result of thousands of hours of hard negotiation with EU officials”.
She believed that “this decisive choice is in the best interests of the entire UK”, adding: “When you strip away the detail, the choice before us is clear.
“This deal, which delivers on the vote of the referendum, which brings back control of our money, laws and borders, ends free movement, protects jobs, security and our Union; or leave with no deal, or no Brexit at all.”
The 585-page draft withdrawal agreement has now been published, alongside a shorter statement setting out what the UK and EU’s future relations will look like.
What’s in it?
The withdrawal agreement covers so-called “divorce” issues. It includes a commitment to protect the rights of EU nationals in the UK and Britons living in the EU to continue living, working and studying.
There is also a planned 21-month transition period after the UK leaves the EU in March 2019, and a “financial settlement” from the UK, thought to be about £39bn.
The most contentious part of the negotiations is a “backstop”, which aims to guarantee that physical checks will not be reintroduced at the border with the Irish Republic, in the event this is not settled by a UK-EU trade deal.
Both sides have resolved to ensure the backstop is not necessary by coming up with alternative arrangements.
Speaking at a press conference, EU negotiator Michel Barnier said if this is not possible by July 2020, the transition period could be extended – and if it is still not settled by the end of the transition, the backstop would “kick in”.
This would involve a joint UK-EU “single customs territory”, so customs checks are not needed on the border.
Northern Ireland would stay aligned to the EU single market rules that are “essential for the avoidance of a hard border”, Mr Barnier added, saying the backstop plan was based on the UK’s proposal.
Some Tory MPs are angry, claiming it could mean the UK is tied to EU rules for years to come.
Earlier a senior Conservative told the BBC there could be a move to a vote of no-confidence in Mrs May, perhaps as soon as Thursday,
Meanwhile Mr Rees-Mogg, who has written to MPs urging them to oppose the proposals, told BBC Radio 5 Live it was “a pretty rotten deal”, keeping the UK in the EU’s customs union and “splitting up” the UK.
Despite winning the backing of her cabinet, the prime minister faces a battle to get the completed deal through Parliament.
Northern Ireland’s Democratic Unionist Party – which gives the government the support it needs to win key votes – has joined opposition parties in criticising it.
Scotland’s First Minister Nicola Sturgeon said: “This proposed deal would be a bad one for Scotland, taking us out of a single market eight times the size of the UK market alone and posing a huge threat to jobs, investment and living standards.”
Afterwards, Scottish Secretary David Mundell said there had been no cabinet resignations and appealed to Conservative MPs to support the package.