Nearly 50 people were arrested across the country, while roughly 30 riot police suffered injuries.
The most intense clashes occurred in Belgrade and Novi Sad, where the anti-corruption movement began.
Pro-government supporters, in many cases masked, confronted demonstrators and exchanged bottles, stones, and fireworks.
Police deployed tear gas and stun grenades to quell the turmoil.
The gun incident in Novi Sad
A military police officer, Vladimir Brkusanin, fired a pistol into the air from a distance during a confrontation with about 100 protesters.
He claimed the act was a routine response to an attack on his assignment and that the attackers dispersed afterward.
Video footage showed him pointing a pistol without any visible military insignia, also carrying a shield.
Seven members of the same special unit were reported injured while protecting a designated official.
Government’s defiant stance
President Aleksandar Vucic rejected early election calls, attributing the demonstrations to foreign interference and a plot to overthrow him.
Unhuman rights experts highlighted an “intensifying crackdown” on activists, noting excessive force, intimidation, and arbitrary arrests.
Pro-government supporters denied responsibility for the violence, claiming no attacks occurred on them.
Despite the resignation of the prime minister and the cabinet’s collapse, Vucic leads a reshuffled government.
Continued protests scheduled for Thursday night
Student protesters announced further demonstrations on Thursday, accusing authorities of shielding pro-government groups while inadequately stopping attacks.
They described the situation as a “civil war provoked” by the state’s actions.