Ukrainian government forces have recaptured the eastern city of Slaviansk, the main stronghold of pro-Russian rebels.

A Reuters reporter saw a convoy of about 20 military transport vehicles and buses filled with armed rebels driving out of Kramatorsk, where they had gone after apparently earlier fleeing Slaviansk 20km to the north.

President Petro Poroshenko website carried a message from newly-appointed defence minister Valery Heletey saying "your order to free Slaviansk from the (separatist) fighters has been carried out."

The rebellion in largely Russian-speaking eastern Ukraine has been a source of great tensions between the West and Russia. The Russian government, which has already come under economic sanctions, denies Western accusations it has been backing the insurrection.

The Ukrainian flag had been run up on the main administrative building in Slaviansk, Mr Heletey said, replacing the Russian one separatists had hoisted in early April when they seized key buildings in the city of 130,000.

Interior minister Arsen Avakov said a large number of separatists had fled in the face of sustained fire from Ukrainian forces.

"A significant number of militants have left Slaviansk ...along the way, our battle groups are greeting them. They are suffering losses and surrendering," he said in a statement on his Facebook page.

A source close to the rebels told Reuters they had been outnumbered by 50 to one. "(The Ukrainian forces) have greater numbers of troops and military hardware," the source said, speaking on condition of anonymity.

The rebels acknowledged the loss.

Aleksandr Borodai, a leader of the self-proclaimed Donetsk People's Republic, was quoted by the Interfax news agency as saying: "The punitive forces of Ukraine ... moved into a large-scale offensive.

"Given the disproportionate numerical superiority of the enemy troops, units of the armed forces of the Donetsk People's Republic were forced to leave their previous positions on the northern sector of the front."

Slaviansk has been the strongest redoubt of militants fighting government forces in eastern Ukraine.

Its re-capture represents Kiev's most notable military victory in three months of fighting in which more than 200 Ukrainian troops have been killed as well as hundreds of civilians and rebels.

Mr Poroshenko's website said separatist fighters had come under mortar fire as they tried to break through government forces' lines. The separatists had lost one tank and other armoured vehicles, the statement said.

Some of the rebels appeared to have moved to Kramatorsk but they were pulling out of there quickly on Saturday apparently fearing air strikes from Ukrainian planes overhead.

People in the town said they had begun to pull out around 4am and about 100 of them had left the town.

Uprisings in eastern Ukraine erupted in April as rebels took over state buildings, built a powerful arsenal of seized weapons and declared their independence from Kiev, calling the pro-European government illegitimate.

The crisis began when street protests ousted the Russian-backed Viktor Yanukovich in late February for rejecting a landmark political and trade deal with the European Union in favour of closer ties with Russia.

Russia subsequently annexed Crimea and separatist revolts against the new Kiev authorities broke out with rebels declaring "people's republics" and saying they wanted to join Russia.