Media playback is unsupported on your device Media caption David Cameron: "Britain will never be part of a European superstate"

David Cameron says a deal struck with EU leaders will give the UK "special status" and he will campaign with his "heart and soul" to stay in the union.

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".

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 on 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 that 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".

Media playback is unsupported on your device Media caption Angela Merkel said EU membership "is something of great value"

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.

Read more from Laura

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."

Media playback is unsupported on your device Media caption European Commission President Jean-Claude Juncker: "The deal is a fair one for Britain"

Labour leader Jeremy Corbyn dismissed Mr Cameron's deal as a "sideshow" designed to "appease his opponents in the Conservative Party," adding that he had done nothing to protect jobs and fight low pay.

"We will be campaigning to keep Britain in Europe in the coming referendum, regardless of David Cameron's tinkering, because it brings investment, jobs and protection for British workers and consumers," he said.

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".

UKIP leader 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."

Image copyright European Press Agency Image caption The deal was announced shortly after leaders met for dinner on Friday

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 "special guest" at the rally, describing him as a "towering figure on the left of British politics".