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.
Cabinet did reach a collective position, but certainly not unanimous. I'm told 9 ministers spoke against the agreement - Fox, Hunt, Williamson, Penny Mordaunt, Javid, Leadsom, Evans, Mordaunt and Grayling.— Laura Kuenssberg (@bbclaurak) November 14, 2018
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 between £35bn and £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.
Labour leader Jeremy Corbyn said he did not think the agreement was in the national interest because it "doesn't meet the needs of all parts of Britain".
Labour would reveal during Thursday morning's Commons statement whether it will vote against the agreement, he said.
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.
Senior DUP figures spent an hour in Theresa May's office after the publication of the draft text.
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."
Not long off call with PM. She tried to tell me Scotland’s ‘distinctive’ interests had been protected. I pointed out that there isn’t a single mention of Scotland in the agreement, that it disregards our interests, and puts Scotland at a serious competitive disadvantage.— Nicola Sturgeon (@NicolaSturgeon) November 14, 2018
What happens next?
Theresa May is sure to face some hostile questioning when she faces MPs' questions on Thursday.
Meanwhile, the EU has said "decisive progress" has now been made in the negotiations.
This was the test required before it would call a special summit to agree the withdrawal plans, possibly later this month.
After that, the government faces a crunch vote in Parliament where MPs will be asked to approve the plans.
The UK is set to leave the EU on 29 March 2019 - at which point, if the withdrawal agreement has been ratified, the transition period begins.
Do you have any questions about the draft withdrawal agreement?
Use this form to ask your question:
If you are reading this page on the BBC News app, you will need to visit the mobile version of the BBC website to submit your question on this topic.