Donald Tusk, the European Council president, said the leaders had made a “breakthrough” that sent “a very clear message that the days of irregular migration to Europe are over”.
The announcement came at the end of a long day of meetings in Brussels, during which Turkey is known to have asked for an additional $3.3bn in return for checking the flow of refugees across the Aegean Sea.
The next step involves the presentation of the proposal to EU leaders at a key European Council meeting due to be held on March 17 and 18.
Turkey is due to receive $3.3bn until the end of 2018 to cover the costs of dealing with refugees, but it reportedly asked for double the amount during Monday’s talks.
Martin Schulz, head of the European Parliament, confirmed that the request for additional money came at the summit between Ahmet Davutoglu, Turkey’s prime minister, and EU leaders.
After protracted negotiations, Martin Selmayr, spokesman for Jean-Claude Juncker, the president of the European Commission, said on Twitter: “Deal. Breakthrough with Turkey.”
Another statement, from the Twitter account of Xavier Bettel, Luxembourg’s prime minister, said: “President of #EUCO will take forward the proposals and work out the details with the Turkish side before the March #EUCO.”
The agreement could see Turkey and the EU cooperate to end the flow of irregular refugees to Greek islands and start resettling Syrian refugees directly from Turkey to the EU.
In exchange for readmitting refugees from Greece to Turkey, Brussels is expected to grant Turkish citizens the right to travel to the EU’s Schengen zone without a visa by end of June 2016.
The Turkish government is also trying to secure the country’s EU membership.
“Turkey is ready to work with the EU, and Turkey is ready to be a member of the EU as well,” Davutoglu said before the summit.
Turkey is a temporary home to an estimated 2.75 million refugees, many from the conflict in Syria.
It is also a transit country for waves of people heading to Europe from Pakistan, Afghanistan and Iraq.
“We are not sending them. They are going [to Greece] by sea and many of them are dying,” Recep Tayyip Erdogan, Turkey’s president, said, criticising the EU for its reluctance to take in more refugees as well as its demands on Turkey to halt the flow of people.
“We have rescued close to 100,000 from the sea. Others are puncturing their boats and causing their deaths.”
On Sunday, at least 25 people drowned off the Turkish coast while trying to reach Greece.
The Greek coastguard launched a search-and-rescue mission for people believed to be missing from the accident near the Turkish town of Didim.
At least 15 people were rescued and brought to land in the care of emergency aid workers.
About 13,000 people are living in precarious conditions in Greece as they wait for authorities to let them into Macedonia so they can move towards Western Europe.
The UN High Commissioner for Refugees says a humanitarian crisis is quickly unfolding at the border, with refugees living in makeshift camps and in the open, as authorities allow only 250 a day to pass through.
More than one million asylum seekers have arrived in Europe since the start of 2015 – the majority fleeing the war in Syria – with nearly 4,000 dying while crossing the Mediterranean.