The turnout was the largest in a long time in the student-led protests against the country's government and President Aleksandar Vucic.
The demonstrations have been recurring since the severe accident at a railway station in the city of Novi Sad in November last year, when parts of the ceiling collapsed and 16 people were killed.
We want elections, chanted the crowd that gathered in central Belgrad.
Saturday's protests became unusually rowdy. In clashes, demonstrators threw pyrotechnics at the police, who responded with tear gas and batons.
Dozens of people were arrested and at least eight people, including six police officers, were injured, according to police chief Dragan Vasiljevic.
According to an independent organization that maps public gatherings, around 140,000 people participated, while according to the police's estimate, it was 36,000.