Chanting "Putin is a thief" and "Freedom to political prisoners!", protesters marched with flags and portraits of people seen as victims of political persecution, such as jailed former oil tycoon Mikhail Khodorkovsky, members of punk band Pussy Riot, and the Greenpeace Arctic crew.
Police estimated turnout at 4,500 while an AFP correspondent said the crowd was at least 6,000 and some participants gave a figure of 10,000.
Opposition leader Alexei Navalny, who was convicted in a controversial fraud case but was freed with a suspended term earlier this month, said the main reason for the rally was to demand freedom for those jailed after protesting in May last year against Putin's inauguration.
"The opposition's fight is endless, and rather tiring," Navalny said, adding that people who thought the Russian strongman could be "dethroned" quickly were "very naive".
More From This Section
The so-called Bolotnaya case against those arrested after the May 6, 2012 rally, has already seen one person sentenced to jail and another sent to a mental institution for forced psychiatric care.
The rally also demanded the release of 30 Greenpeace activists being held in pre-trial detention after attempting to scale an oil-platform in the Barents Sea in protest at Arctic oil exploration.