Several thousand members of liberal and leftist groups marched down the city's main avenue to protest what they said was Russia's rolling back from democracy as part of the so-called March of Those Who Disagree — a rare gathering of the country's beleaguered and often fractious opposition.
City authorities had banned the march, only granting permission to hold a rally in a location far from the city center, but the activists defied the ban and marched toward and then down the Nevsky Prospekt, the city's main street, blocking traffic there.
Riot police detained and clubbed dozens of protesters in an attempt to stop the march and disperse the activists, but over 2,000 broke through the cordons, marched toward the center and rallied for about 40 minutes until police moved in again, detaining scores of others.
An AP Photographer saw police beating protesters with truncheons and dragging them into detention buses. Several activists also attacked a law enforcement officer.
The activists held banners "Russia Without Putin," in a reference to President Vladimir Putin, "We Are for Justice," "Get Elections Back." They called for the ouster of mayor Valentina Matviyenko, a close ally of the president, accusing her of corruption and incompetence.
The protest took place before March elections to the city legislature, in which the Yabloko party, one of the country's two main liberal parties, was kicked off the ballot on what the party said were groundless technical reasons. The activists accused authorities of cracking down on the opposition, stifling freedom of speech and eating away at democratic institutions by abolishing direct elections of regional leaders and creating an obedient parliament.
Russia's increasingly sidelined and often divided opposition has faced increased harassment in recent years, with protest meetings barred on suspicious legal grounds or party congresses broken up or canceled for no reason.