About 10,000 people including Ukraine's former president Petro Poroshenko gathered in central Kiev on Sunday to protest a plan for broader autonomy for separatist territories ahead of a high-stakes summit with Russian leader Vladimir Putin.
The protesters, who descended on Kiev's Independence Square known locally as Maidan, chanted "No to surrender!", with some holding placards critical of President Volodymyr Zelensky.
Zelensky's predecessor Poroshenko, who was trounced in an April election, joined the crowd towards the end of the rally and several thousand demonstrators later marched towards the presidential administration and the parliament building.
"Together we will win!" said the 54-year-old former president, who was accompanied by his wife Maryna. He thanked Ukrainians for taking to the streets as some supporters hugged and kissed him.
Writing on Twitter, Poroshenko thanked "tens of thousands" of Ukrainians who he said gathered in Kiev and more than 20 other cities to protest.
Zelensky is gearing up to hold his first summit with Putin in an effort revive a stalled peace process to end the five-year separatist conflict in eastern Ukraine.
Ahead of the meeting Ukrainian, Russian and separatist negotiators agreed this week on a roadmap that envisages special status for separatist territories if they conduct free and fair elections under the Ukrainian constitution.
Zelensky's critics fear that Putin will push the 41-year-old comedian-turned-politician to make damaging concessions in order to retain Moscow's de-facto control of separatist regions in eastern Ukraine.
Protesters in Independence Square said that agreeing to give broader autonomy to the self-proclaimed Donetsk People's Republic and Lugansk People's Republic would mean surrendering Ukraine's interests.
"We are against a betrayal," protester Sergiy Lezvinsky, 58, told AFP.
"We want to put an end to the occupation, to the decisions that are being fast-tracked."
- 'Putin project' -
The provisional agreement of a roadmap was a key condition set by Moscow for a meeting that will be hosted by French President Emmanuel Macron and also involve German Chancellor Angela Merkel.
The plan has been dubbed "the Steinmeier formula", after the former German foreign minister, Frank-Walter Steinmeier, who proposed it.
But many critics say the proposal favours Russia.
Zelensky's predecessor Poroshenko has called it "Putin's formula," claiming it will endorse the Russian annexation of Crimea and Moscow's de-facto control of eastern Ukraine.
"The Steinmeier formula is a Putin project," said protester Mykola Chepiga.
He said elections could take place in eastern Ukraine only if Kiev restores control of the country's borders in the east.
Some of the demonstrators later marched towards the presidential administration where they chanted "Get out!" and "Monica".
The Ukrainian leader has been nicknamed "Monica Zelensky" by some critics after his phone call with Donald Trump that may lead to the US president's impeachment. The nickname is an allusion to the onetime White House intern, Monica Lewinsky, who nearly brought down the presidency of Bill Clinton.
The crowd then reached the parliament building where a protest coordinator threatened to set up barricades in the Ukrainian capital if Zelensky submits legislation offering concessions to Putin.
"Friends, do we know how to erect barricades? Yes, we do! Do we know how to fight? Yes, we do!" he said.
"There are enough of us and we all want one thing -- to kick out the occupiers from our land!"
In an address to the nation this week Zelensky said he respected the right of Ukrainians to protest but called on people not to "give in to provocations".
He pledged not to betray the country's interests.
The ex-Soviet country of 45 million people has gone through two popular uprisings in two decades.
More than 100 people were killed during a 2014 revolution that toppled a pro-Russian president and saw protests descend into street battles.
After the uprising Russia annexed Crimea and supported a separatist insurgency in Ukraine's industrial east.
The conflict has become the worst East-West crisis since the end of the Cold War and has claimed some 13,000 lives.