Thousands marched through Belgrade's frozen city center on Saturday to protest against President Aleksandar Vucic and his ruling Serbian Progressive Party (SNS) and demand media freedoms and end to attacks against journalists and opposition figures.
Protesters blew whistles, waved banners that read "Stop the Treason, Defend the Constitution and Back the People", and chanted "Vucic, thief!" in the fifth such protest in as many weeks.
The protests, which have also been staged in the town of Kragujevac, were triggered by an incident in November in which opposition politician Borko Stefanovic was beaten by unknown assailants in the town of Krusevac.
Backers of the Alliance for Serbia, a grouping of 30 opposition parties and organizations, say Vucic is an autocrat and his party is corrupt, something its leaders vehemently deny.
The demonstrators demanded more coverage of opposition groups by the public broadcaster and assurances of thorough investigations of attacks on journalists and opposition politicians.
Vucic had earlier said he would not bow to opposition demands for electoral reform and increased media freedom "even if there were 5 million people in the street", but suggested he was willing to test his party's popularity in a snap vote.
Opposition groups have said they would boycott any election.
According to an October poll by the Belgrade-based CESID election watchdog, the SNS alone has 53.3 percent support, far ahead of other parties.
If the opposition parties ran as an alliance, they could count on around 15 percent of the vote, according to the survey. However, there is little sign so far of such an agreement between parties united by little apart from their animosity towards Vucic and his party.
The SNS-led ruling coalition has a comfortable 160 of parliament's 250 seats. The next national vote is due in 2020.
Major opposition protests have been relatively rare in Serbia since the popular unrest that ousted strongman Slobodan Milosevic in 2000.
Most of the current opposition leaders served in successive pro-Western coalitions that led Serbia between 2000 and 2012 - when the SNS forged a coalition with Milosevic's Socialists and came to power.
Vucic was a nationalist firebrand during the violent collapse of the former Yugoslavia in the 1990s, but later embraced pro-European values and set membership of the European Union as Serbia's strategic goal. He also maintains close ties with Russia and China.