The police broke the rally into several groups but activists eventually forced their way through police cordons and the march spilled onto Nevsky Prospekt.
Other Russia, an anti-Putin alliance, held a similar but smaller event in Moscow in December. Other Russia was created with an eye to the 2008 presidential elections when it hopes to put forward a strong alternative to Kremlin-backed candidates.
The umbrella group incorporates, among others, Garry Kasparov’s United Civil Front, Mikhail Kasyanov’s People’s Democratic Union and Eduard Limonov’s National Bolshevik Party.
The police estimated the number of protesters at Saturday’s march at “more than 2,000.”
Kasparov, one of the leaders of Other Russia, said the number of protesters exceeded 6,000.
The demonstration was by far the largest that Putin’s home town has seen in recent years, with numerous independent eye-witnesses at the demonstration putting the number of participants at around 5,000. During the last five years opposition gatherings have typically managed to draw no more than a few hundred supporters.