The agreement, reached late on Friday after two days of talks in Brussels, gives the UK power to limit some EU migrants’ benefits.
It also includes a treaty change so the UK is not bound to “ever closer union” with other EU member states, he said.
EU exit campaigners said the “hollow” deal offered only “very minor changes”.
- Follow rolling reaction to the Brussels deal as UK cabinet meets
- The UK’s EU vote: All you need to know
- Nick Robinson: Why EU vote is about you
- Katya Adler: A hard-headed calculation to avoid Brexit
Mr Cameron is set to the announce the date of a referendum on whether Britain should remain in the EU after a cabinet meeting which is happening at 10:00 GMT – the referendum is widely expected to be Thursday, 23 June.
Once the date is announced, ministers will be allowed to campaign for whichever side they want – one of Mr Cameron’s closest political allies Michael Gove has already been named as supporting the Leave camp. Others, such as Iain Duncan Smith are expected to follow – but a question mark remains over which way London Mayor Boris Johnson will jump.
The key points of the deal are:
- An “emergency brake” on migrants’ in-work benefits for four years when there are “exceptional” levels of migration. The UK will be able to operate the brake for seven years
- Child benefit for the children of EU migrants living overseas will now be paid at a rate based on the cost of living in their home country – applicable immediately for new arrivals and from 2020 for the 34,000 existing claimants
- The amending of EU treaties to state explicitly that references to the requirement to seek ever-closer union “do not apply to the United Kingdom”, meaning Britain “can never be forced into political integration”
- The ability for the UK to enact “an emergency safeguard” to protect the City of London, to stop UK firms being forced to relocate into Europe and to ensure British businesses do not face “discrimination” for being outside the eurozone
The prime minster had to make concessions to get a deal with the leaders of the 27 other EU members.
Mr Cameron had originally wanted a complete ban on migrants sending child benefit abroad but had to compromise after some eastern European states rejected a complete ban and also insisted that existing claimants should continue to receive the full payment.
On how long the UK would be able to have a four-year curb on in-work benefits for new arrivals, Mr Cameron had to give way on hopes of it being in place for 13 years, settling for seven instead.
The agreement on renegotiating the UK’s EU membership was announced by European Council president Donald Tusk, who tweeted: “Deal. Unanimous support for new settlement for #UKinEU.”
German Chancellor Angela Merkel predicted the package of reforms would “elicit support in the UK for the country to remain in the EU”.
Mr Tusk said it “strengthens Britain’s special status”, while EU Commission president Jean-Claude Juncker described it as “fair”.
Mr Tusk added: “We didn’t walk away from the negotiating table. We were willing to sacrifice part of our interests for the common good, to show our unity.
“I deeply believe the UK needs Europe and Europe needs the UK. But the final decision is in the hands of the British people.”
Analysis by Laura Kuenssberg, BBC political editor
The ink is hardly dry on the UK’s EU deal, but immediately the focus has switched to the substance of what David Cameron has achieved and – possibly an awkward question – how many of his colleagues will argue against him.
The focus will move to whether the prime minister can keep his party politely together during a period of public disagreement.
The ability to restrict benefits to migrants is an important victory for Mr Cameron – ammunition for his argument that he has achieved changes to help reduce the number of EU migrants coming to live and work in the UK.
The proposals are complicated and do not exactly match the promises he made in the Conservative Party manifesto.
But with it – and the other commitments – it becomes harder for his critics to make the case that the agreement is flimsy and will change nothing.
Mr Cameron said he had achieved the reforms he wanted, claiming they would put the UK “in the driving seat” of one of the world’s biggest markets and create a “more flexible” EU.
“We have permanently protected the pound and our right to keep it,” he added, saying that, for the first time, the EU “has explicitly acknowledged it has more than one currency”.
The prime minister said he had also protected Britain from further political integration inside the EU, adding: “Let me put this as simply as I can: Britain will never be part of a European superstate.”
‘Milk and honey’
Outlining his case to remain “in a reformed Europe”, Mr Cameron said “turning our back on the EU is no solution at all”.
“We should be suspicious of those who claim that leaving Europe is an automatic fast-track to a land of milk and honey,” he added.
“The British people must now decide whether to stay in this reformed European Union or to leave. This will be a once-in-a-generation moment to shape the destiny of our country.”
Scotland’s First Minister Nicola Sturgeon said it was now “more important than ever” that those who supported Scotland’s continued EU membership made the case “as strongly as possible”.
Eurosceptics have dismissed the reforms, saying they will not allow the UK to block unwanted EU laws or reduce migration.
Matthew Elliott, chief executive of the Vote Leave campaign, said Mr Cameron “will now declare victory but it is an entirely hollow one”.
Nigel Farage tweeted: “This is a truly pathetic deal. Let’s Leave the EU, control our borders, run our own country and stop handing £55m every day to Brussels. I believe in Britain. We are good enough to be an independent, self-governing nation outside of the EU. This is our golden opportunity.”
As the EU summit was being concluded, another EU exit campaign, Grassroots Out, held a rally in Westminster.
Conservative MP David Davis said it was time for Britain “to take control of its own destiny”, while UKIP leader Nigel Farage said the cross-party campaign was “absolutely united in fighting to get back our democracy”.
Mr Farage unveiled former Respect MP George Galloway as a “spcial guest” at the rally, describing him as a “towering figure on the left of British politics”.