Thirty-five police officers were hurt and 41 fans arrested in a violent Belgrade derby between Red Star and Partizan on Saturday.
"Hooligan behaviour has led to slight injuries to 35 police officers," the Serbian Interior Ministry said in a statement.
"Police reacted professionally and efficiently, quelling a conflict started by fans which could have led to calling the game off and other serious consequences.
"Before, during and after the game, 41 individuals were arrested and police also turned back a van from (the northern city of) Zrenjanin loaded with rocks and bricks."
The match ended in a 0-0 draw that left league leaders Partizan five points clear of second-placed Red Star with six matches remaining.
The start of the game, which has a long history of crowd trouble, was delayed for 45 minutes after home Red Star fans pelted riot police with seats and flares, forcing officers to retreat from the north tier that houses the club's diehard fans.
When reinforcements arrived the police returned to the terraces and pushed the supporters back.
One area of the north tier was emptied and when the match finally got underway it produced a tepid first half with Darko Lazovic going close for champions Red Star and Stefan Babovic missing a good chance for Partizan.
Most of the fireworks were confined to the terraces where both sets of fans lit dozens of flares and hurled several stun grenades on to the athletics track, keeping fire officers busy as they dashed around with buckets of water.
Play was again held up for several minutes midway through the second half for clouds of billowing smoke to clear after visiting supporters set off fireworks on a warm evening in central Belgrade.
Partizan dominated after the interval with home keeper Predrag Rajkovic denying Darko Brasanac and a Red Star defender clearing a Gregor Balazic effort off the line.
Teenage striker Luka Jovic missed Red Star's best chance when Partizan keeper Zivko Zivkovic closed him down and parried his fierce shot from inside the penalty box.