About 50,000 demonstrators railed against Putin's victory in the disputed March 4 presidential election, RIA Novosti reported.
Putin, who served two terms as president before spending the past four years as prime minister, won by a landslide, but his victory has been surrounded by allegations of voter fraud. He is to be inaugurated Monday.
The protest was called for by political activist Sergei Udaltsov, leader of the Left Front movement.
"Fascists!" protesters shouted. "You are breaking the law!"
Some police officers were injured in clashes with protesters who threw bottles and stones at them, police said, adding that a number of journalists from the state-run NTV channel were beaten by protesters.
"This was not Udaltsov's rally," political analyst Dmitry Oreshkin said. "This was a rally of angry citizens."
There was no official number reported on how many people were arrested.
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need