More than 22,000 people packed a Moscow square Saturday to demand free and fair local polls, incensed by the authorities' refusal to put popular opposition candidates on the ballot.
Staging their largest protest in years, opposition leaders such as president Vladimir Putin's top opponent Alexei Navalny and ordinary Muscovites rallied after authorities refused to register independent candidates seeking to contest the September vote for the capital's parliament.
"This is my city!" the crowd chanted during the two-hour-long sanctioned rally.
"We will show them this is a dangerous game," Navalny bellowed from a stage.
"We should fight for our candidates," he said as the huge crowd cheered and waved Russian flags.
The 43-year-old threatened an even bigger rally next Saturday, near the mayor's office, unless Moscow's authorities register a new crop of popular politicians including Ilya Yashin and Lyubov Sobol within seven days.
After the rally, 16 independent candidates issued a joint statement demanding access to the ballot and accusing Moscow mayor Sergei Sobyanin of sparking a "political crisis" in the city of some 15 million.
Speaking at the rally, Navalny ally Sobol, who has been on a hunger strike for a week to protest the authorities' refusal to allow her to run, vowed to keep up the fight.
"I am sure that we will win," said the visibly fatigued 31-year-old lawyer, propped up by an ally on stage.
Many ordinary Russians have slammed what they called the blatant impunity of officials, saying people's patience was running thin.
"We are angry at the lawlessness," Alexander Polovinkin, a 21-year-old student, told AFP.
Police detained a handful of protesters, said the OVD-Info monitor, adding one of them had his arm broken.
Many protesters took direct aim at the 66-year-old Putin, who has brooked no dissent during his two decades in power.
"Putin lies," said one placard. "Stop lying to us," read another one.
Opposition candidate Ilya Yashin, who is a local councillor, said Putin must go. "I've lived half my life under Putin. I've had enough," the 36-year-old said.
Fellow opposition contender Dmitry Gudkov, who was also disqualified, accused the authorities of stealing not only people's votes but their very future.
"We've been living in an occupied country for the past 20 years," he said.
White Counter, an NGO that tracks participation in protest rallies, said about 22,500 people took part in Saturday's rally.
Navalny said it was the largest rally since 2012 when tens of thousands protested election fraud during parliamentary polls.
Police, which downplay turnout at opposition rallies, said 12,000 turned up.
Observers said that never before have Muscovites turned up in such great numbers to demand access for their candidates in local elections.
Opposition politicians fought tooth and nail to get on the ballot paper as they seek to capitalise on Putin's falling approval ratings and anger over declining living standards and unchecked corruption.
They were made to jump through countless hoops, and each had to collect roughly 5,000 signatures to be eligible.
'We are ghosts'
Electoral authorities this week still refused to register the opposition candidates, accusing them of faking some of the signatures.
Critics said some of the officials' reasoning bordered on the absurd.
The Kremlin dismissed the opposition's complaints, but many Russians are furious at what they perceive as electoral interference.
The opposition candidates staged smaller daily rallies throughout the week.
Many have also taken to social media in recent days to post messages or videos to prove they were not "dead souls."
At Saturday's rally, some protesters waved their passports in the air, chanting "We have come!"
Greg Yudin, a lecturer at the Higher School of Economics, said he and many other Muscovites discovered that their signatures were declared fake.
"All of us are ghosts. We are the nobodies," he said on Facebook this week.
Observer Kirill Rogov said the candidates' exclusion was "one of the largest frauds in Russia's electoral history".
"We are witnessing a major large-scale crime," he wrote on his blog.
Some 7.2 million Muscovites are eligible to elect 45 lawmakers to the local parliament, currently dominated by the United Russia ruling party.