Around 50,000 people marched through central Moscow on Saturday in protest against Russia's intervention in Ukraine, a day before the Crimean peninsula votes on switching to Kremlin rule.
Waving Ukrainian and Russian flags and adopting the chants of Ukraine's popular uprising, prominent and ordinary Russians urged Russian President Vladimir Putin to pull troops back from ex-Soviet Ukraine.
Marchers carried placards read "Putin, get out of Ukraine" and others compared Kremlin's decision to send troops to Crimea with the Nazi annexation of the Sudetenland as Europe rushed headlong into World War II.
A group of demonstrators held a banner reading: "Take the Russian troops home," while one protester carried a copy of George Orwell's dystopian novel 1984.
Some shouted the war-time battle cry of Ukrainian nationalists that has become the most famous chant of the Kiev uprising that ousted President Viktor Yanukovych - "Glory to Ukraine! Glory to heroes!"
Members of anti-Kremlin group Pussy Riot compared Russia's invasion of Crimea that plunged the country into a Cold-War style confrontation with the West to the Soviet invasion of Czechoslovakia in 1968.
"How can a referendum under the barrels of guns be legitimate and fair?" Pussy Riot member Maria Alyokhina asked during a rally after the march, a Russian flag in her hand.
"I don't want the troops to be stationed in Crimea," added protester Vladimir Murashev, 58, noting his son was in the army. "I do not want him to be sent there."
University professor Yelena Orlova, 47, whose sign read "Ukraine is a sovereign state", said she was against "the annexation of Crimea".
"I think Russia should respect the borders of Ukraine."
The huge column of people snaked along a central boulevard before the protesters gathered for a rally on Sakharov Avenue, the scene of huge anti-Putin rallies that shook Russia in 2011-12.
In Kiev, lawmakers in parliament gave the Russian protesters a standing ovation.
"We should say thank you to our Russian friends," said Volodymyr Aryev, a lawmaker with the pro-Western Batkivshchyna party.
"Don't shoot," chanted the crowd as speaker after speaker denounced the Kremlin's policies from the stage.
"We are patriots and Putin is Russia's enemy," said activist Ilya Yashin.
"Ukraine is a brotherly nation and we will not allow them (the government) to march us into a fratricidal war."
An AFP team at the rally estimated the turnout at some 50,000.
Russian police, which frequently downplays the size of opposition rallies, said some 3,000 people participated.
A rival demonstration within sight of the Kremlin in central Moscow, which appeared to be well-organised, attracted 15,000 people in support of Putin, police said.
Television cameras, which swooped over the heads of demonstrators, showed uniform lines of people wearing red and carrying red flags as speakers lashed out at "fascists" in Ukraine they say are targeting ethnic Russians.
"There will never be a Maidan in Moscow," ultra-conservative figure Sergei Kurginyan shouted from the stage, referring to the focal point of the Kiev uprising.
Days after Western-leaning activists toppled the Moscow-friendly government in Kiev last month, Russian forces took control of Crimea, home to Moscow's Black Sea fleet.
A newly appointed government there declared it would leave Ukraine and has set a referendum on the issue for Sunday.
Moscow, which refuses to recognise the new administration in Kiev, says the plebiscite is a legitimate opportunity for the largely Russian-speaking peninsula to determine its own future.
Kiev and its Western allies say the referendum is an illegal fig leaf for a land-grab by the Kremlin, which it accuses of trying to unilaterally re-draw the post WWII map of Europe.