Ukrainian forces have entered the pro-Russian separatist stronghold of Sloviansk in the east.
President Poroshenko has ordered the military to hoist the Ukrainian flag over the city council building.
The extent of Ukrainian forces’ control over the town remains unclear, but some reports quoted separatists as saying they were evacuating.
Ukrainian forces launched an offensive against the separatists this week after a 10-day ceasefire broke down.
Interior Minister Arsen Avakov said on Facebook that a large number of insurgents had left Sloviansk.
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 Sloviansk’s town council offices”.
It said the separatists had lost one tank and four armoured vehicles as they left town.
Associated Press quoted Andrei Purgin, a spokesman for the separatists’ self-proclaimed Donetsk People’s Republic, as saying the rebels were evacuating.
It quoted a rebel commander as saying they were moving to the town of Kramatorsk.
The Ukrainian Ostrov website quoted hostages who said they had managed to free themselves from detention in Sloviansk’s main police station. They also reported that separatists had left towards Kramatorsk.
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.
The BBC’s David Stern in Kiev says talks to try to end the fighting were supposed to begin on Saturday, but so far no meeting has been announced.
Russian President Vladimir Putin had been urged to use his influence to put pressure on the rebels in the Donetsk and Luhansk regions.
Mr Putin in turn said he was “deeply concerned about the rise in deaths among the civilian population and sharp increase in refugees” entering Russia from south-eastern Ukraine.
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 defence 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.