Orthodox protesters attacked on a gay-rights rally, chanting hymns and prayers, and leading to arrests on both sides in Saint Petersburg.
About 20 gay-rights activists had gathered in the centre of Russia's second city for the rally, waving rainbow flags and signs with messages such as "Stop homophobia in Russia!"
But the rally was cut short when a group of about 50 Orthodox Christian counter-demonstrators, singing and reciting prayers, attacked the activists, said an AFP photographer.
Police broke up the fight and arrested activists from both sides, about 20 people in all.
Gay rights is a divisive issue in Russia, where homosexuality was considered a crime until 1993 and a mental illness until 1999.
In June, President Vladimir Putin signed a controversial new law against "gay propaganda" that has drawn international condemnation and calls to boycott the 2014 Winter Olympic Games in Sochi in southwestern Russia.