The protest on Saturday appeared to have by far the largest turnout of the recent rallies over an issue tapping strong dissatisfaction with Russia's tightly controlled politics.
A group that monitors attendance of public meetings, Beliye Schetchik, said it counted about 40,000 people at the demonstration; a police estimate put the crowd at 20,000.
Unlike the previous two protests, which saw sometimes violent police crackdowns and thousands of arrests combined, the one on Saturday was sanctioned by city authorities.
Some opposition figures called for an unauthorized march to follow the permitted rally.
Police on Saturday detained Lyubov Sobol, one of the city council candidates denied a place on the ballot and a spearhead of the election protest.
A video on Sobol's Twitter feed showed officers breaking into her office as she demanded an explanation from them.
Small related protests also were reported in several Siberian cities on Saturday.