Mariupol Petro Poroshenko Ukraine Crisis
Ukrainian President Petro Poroshenko speaks to an officer during his visit to the southern coastal town of MariupolReuters

Russian-backed separatists in eastern Ukraine have released 1,200 prisoners, Ukrainian President Petro Poroshenko said as he visited the strategic city of Mariupol.

The captives were freed as part of a ceasefire deal between Kiev and separatist insurgents that was agreed at the end of last week, Poroshenko said.

Russia's Itar-Tass news agency quoted the president as saying another 853 Ukrainian prisoners were expected to be released by the end of the week.

Poroshenko made the announcement during a surprise trip to the embattled port town of Mariupol.

Wearing a military uniform, the president pledged reinforcements to the city and said government troops will defend it at all costs, days after it came under shelling from pro-Russian rebels.

Poroshenko tweeted:

Previously almost untouched by the insurgency, Mariupol came under rebel threat two weeks ago as separatists opened a new front on the shore of the Sea of Azov, connecting Russia to the recently Russia-annexed Crimean peninsula.

Only 30km (20 miles) to the east, the city of Novoazovsk near the border was shelled for three days and then entered by Russian-backed militia.

Meanwhile, the fragile ceasefire agreed in Belarus last week appeared to be holding. Sporadic explosions were heard in the rebel-held city of Donetsk, while no fighting was reported in Luhansk for the third night in a row.

In Mariupol, Poroshenko urged Russia to pull its troops out from Ukraine and close the border. He said no victory was possible "just by military means", AFP reported.

"Withdraw foreign troops and close the border and within a week we [will] find a compromise," he said.

Russia denies playing an active role in the conflict that has killed more than 3,000 people, according to the UN.