Riot police clashed with opposition supporters, chasing small groups of demonstrators, beating some on the ground and hauling them into police buses.
It was not immediately clear what sparked the violence after the rally, which city authorities had authorized and took place under a heavy police presence with at least one helicopter hovering above. City police spokesman Vyacheslav Stepchenko said about 120 people were detained; no information was immediately available on how many were injured.
After one of the clashes, an elderly woman comforted a young man who lay on the sidewalk with blood on his face. "So this is what they call democracy," a passer-by remarked.
Several of the rally's organizers were detained, at least one of them before the event started. The RIA-Novosti news agency cited police sources as saying more than 100 people were detained, but police declined to give a figure to The Associated Press.
Although city authorities gave permission for the rally in a square on the edge of central St. Petersburg, they had banned plans for the demonstrators to march afterward to the city's government headquarters.
Police trucks and helmeted officers blocked the planned march route. At the end of the 90-minute rally, organizers did not call on the crowd to march along the banned route, but suggested protesters go on their own to the city government building over the next few days. When the rally dispersed, most participants went to a nearby subway station, where clashes broke out.
In one, police chased a group that included Sergei Gulyayev, a former member of the city legislature who had been arrested at a protest in March. Police grabbed some members of the group and hit them over the head with truncheons before putting them on buses; Gulyayev was among those taken away.
In another clash, police charged a group holding a banner professing love for the city.
Andrei Dmitriyev, the local head of the banned National Bolshevik Party, told The Associated Press he had been beaten and detained, and he said party leader Eduard Limonov widely known for his novels and provocative sense of political theater had been arrested. Also detained was Maxim Reznik, a local head of the liberal Yabloko party, said party official Boris Vishnyevsky.
A day earlier, there were clashes at a similar opposition protest in Moscow, where police detained at least 170 people.
"Yesterday, it became clear that the authorities won't be making any concessions. They have started a war on people," Limonov told Sunday's rally.
President Vladimir "Putin and his team are sitting on sacks of gold, at the same time the country is breaking apart in all spheres," said demonstrator Sergei Nilupov, a 56-year-old teacher.
One of the rally organizers, Olga Kurnosova, told The Associated Press that police detained her near her home a few hours before the demonstration.
She said by telephone from a police station that she was held for distributing brochures about the rally, which she said was an artificial pretext because city authorities had given permission for the demonstration.
"It's clear that the reason was to keep me away from the demonstration," she said.
The weekend protests were part of a series of "Dissenters' Marches" called by the Other Russia umbrella group that brings together an array of opposition factions including one led by former world chess champion Garry Kasparov.
Kasparov was among those arrested in Moscow and was released late Saturday night after being fined 1,000 rubles (US$38; Ђ29) for disrupting public order. He did not go to St. Petersburg for the Sunday rally.
Kurnosova, who heads the St. Petersburg branch of Kasparov's United Civil Front, had said Saturday that she expected the tough police action in Moscow to provoke a large turnout in St. Petersburg. But the crowd appeared to be less than organizers had hoped for, filling only about half of the area marked off by metal barricades for the rally.
Putin, whose second and last term ends in 2008, has created an obedient parliament, and the government has reasserted control over major television networks, giving little air time to its critics.