Protesters, led by former chess champion Garri Kasparov, were targeting what they call rampant corruption and a Kremlin crackdown on democratic freedoms.
Up to 3,000 people participated in the protest, amid a heavy police presence estimated at more than 8,000.
Around 50 people were reportedly detained after scuffling with security forces.
Protest organizers said that around 100 people were prevented from leaving their regions to attend the rally in the capital.
Police this week raided the offices of Kasparov's United Civic Front, saying they were looking for "extremist literature."
(with material from news agencies)