Tens of thousands of people gathered in central Moscow to protest against Vladimir Putin and the alleged electoral fraud.
The protesters passed a resolution “not to give a single vote to Vladimir Putin” at next year’s presidential election.
Protest leader Alexei Navalny told the crowd to loud applause that Russians would no longer tolerate corruption.
“I see enough people here to take the Kremlin and [Government House] right now but we are peaceful people and won’t do that just yet,” Alexei Navalny said.
Protesters say parliamentary elections on December 4, which were won by Vladimir Putin’s party, were rigged. The government denies the accusation.
A sea of demonstrators stretched along Sakharov Avenue, a few miles from the Kremlin, in sub-zero temperatures.
Rallies were taking place across Russia, with the first big protest in the far eastern city of Vladivostok.
At least 28,000 people turned out in the capital, according to the Russian interior ministry, but rally organizers said the true number was around 120,000.
President Dmitry Medvedev announced political reforms this week, but many demonstrators say it is not enough.
They are demanding a re-run of the poll, which was won by Vladimir Putin’s party – but with a much smaller share of the overall vote.
Vladimir Putin poured scorn on protesters during a recent live chat on Russian TV, calling them “Banderlog” after the lawless monkeys in The Jungle Book, and likening their protest symbol, a white ribbon, to a condom.
However, Vladimir Putin also said protesters had the right to demonstrate if they kept within the law.
In Moscow, many protesters clutched white balloons and banners with the slogan “For Free Elections” while some mocked Vladimir Putin with images of condoms, to the extent that the first speaker, music journalist Artyom Troitsky, dressed himself up as one.
The resolution passed at Saturday’s rally built on demands expressed at an earlier rally in Moscow on December 10.
Another new point was a call for the creation of a new election monitoring body – the Moscow Voters’ Association – to investigate ballot-rigging.
Alexei Navalny, a prominent anti-corruption blogger who was jailed for 15 days over a street protest just after the elections, greeted the crowd with the words: “Greetings to the Banderlog from the net hamsters [internet activists].”
Condemning Russia’s leaders as “swindlers and thieves”, he listed victims of injustice including imprisoned former tycoon Mikhail Khodorkovsky and anti-corruption lawyer Sergei Magnitsky, who died in custody.
“Who’s the power here?” he shouted to cries of “We are” from the crowd.
Alexei Navalny promised that the next protest rally would be a “million strong”.
Alexei Kudrin, who recently resigned after serving a decade as Vladimir Putin’s finance minister, was booed when he took the microphone to call for early parliamentary elections and urge a dialogue between the Kremlin and the opposition.
“There needs to be a platform for dialogue, otherwise there will be a revolution and we lose the chance that we have today for a peaceful transformation,” he said.
A total of 22 speakers were lined up for the Moscow rally, with rival opposition figures addressing a crowd which mixed liberals with nationalists.
• In a video message, Russian rock musician Yury Shevchuk urged protesters to maintain their dignity and avoid “competing in hatred for the authorities”
• Billionaire and Putin election challenger Mikhail Prokhorov had been expected to address the rally but stayed in the crowd, saying he had heard presidential candidates were “not supposed to speak”
• Another presidential candidate, veteran liberal Grigory Yavlinsky, did speak, and called for a free electoral system
• Former Soviet leader Mikhail Gorbachev, 80, did not attend after all, sending a message of support instead. He later told Moscow Echo radio that Mr Putin should not stand for another term in office
Saturday’s rally in Moscow ended peacefully, with the last speaker a Grandfather Frost (Russian Santa Claus) figure who wished citizens of a “free Russia” a Happy New Year.