President Petro Poroshenko has ordered the military to hoist the Ukrainian flag over the city council building.
Slavyansk's rebel mayor said fighters had left, with reports saying they had headed towards the town of Kramatorsk.
Ukrainian forces launched an offensive against the separatists this week after a 10-day ceasefire broke down.
The BBC's David Stern in Kiev says the military's capture of Slavyansk - where the eastern insurgency began in April - will be a major victory for the government.
Slavyansk's rebel-backed mayor, Vladimir Pavlenko, confirmed to Agence France-Presse news agency that the separatists had left.
But he said the Ukrainian military had not yet taken over.
Alexander Borodai, so-called prime minister of the self-proclaimed Donetsk People's Republic, said on a rebel website:
"Due to the overwhelming numerical superiority of the enemy our men were forced to abandon their positions."
The Associated Press quoted rebel spokesman, Andrei Purgin, as saying the army offensive had left the town "in ruins".
Another rebel commander told AP they were moving to Kramatorsk.
Witnesses said there was bombing overnight in Slavyansk and in the morning the rebel-manned checkpoints had been abandoned.
Interior Minister Arsen Avakov earlier said on Facebook that a large number of insurgents had left Slavyansk.
He said the rebels were "suffering losses and surrendering" after being met by Ukrainian forces.
Mr Avakov said "some intelligence suggests" that the military commander of the self-declared Donetsk Peoples' Republic (DPR), Igor Strelkov, was among those leaving, but this has not been confirmed.
The commander, whose real name is Igor Girkin, is accused by Ukraine's government and the European Union of being a Russian military intelligence officer.
Mr Poroshenko's website said he had given the order "for the state flag to be raised on Slavyansk's town council offices".
It said the separatists had lost one tank and four armoured vehicles as they left town.
One rebel leader, Pavel Gubarev, said the losses suffered were "minimal".
In a separate development, Russian news agency Interfax reported that Ukrainian forces had destroyed the headquarters of the DPR in the town of Artemivsk.
There has been intense diplomatic activity this week to try to reinstate the ceasefire, with telephone calls involving Germany, France, the US, Russia and Ukraine.
Mr Poroshenko said he was ready to return to a ceasefire provided it was observed by both sides, all hostages were freed and borders secured by government forces.
Our correspondent in Kiev says talks to try to end the fighting were supposed to begin on Saturday, but so far no meeting has been announced.
Human cost of conflict
At least 250 civilians killed in eastern Ukraine since April, according to Ukrainian and rebel reports.
Nearly 200 soldiers killed and 619 wounded since April, according to Ukrainian defense ministry.
At least 800 rebels killed since April, according to rebels.
At least 110,000 people have left Ukraine for Russia this year to date, most of them from eastern regions, according to the UN.
Some 54,400 people have been displaced within Ukraine itself, the UN says.
Mr Poroshenko called off a unilateral truce on 30 June, accusing the rebels of staging deadly attacks on Ukrainian government troops.
Violence erupted in eastern Ukraine in April, when the separatists declared independence in the Donetsk and Luhansk regions.
That followed Russia's annexation of Ukraine's Crimea.
The current Ukraine crisis started last November, when then President Viktor Yanukovych decided, under pressure from Russia, not to sign an agreement with the EU, leading to street protests in Kiev and his eventual overthrow.
President Poroshenko signed the free trade part of the EU deal in Brussels on 27 June, after earlier signing the political co-operation clauses.
Source; BBC News Europe