A 14-year-old boy shot his teacher in a Belgrade classroom on Wednesday morning before opening fire on other students and security guards, killing eight pupils and a security guard, Serbia's interior ministry said.
Milan Milosevic, the father of one of the pupils at the Vladislav Ribnikar elementary school, said his daughter was in the class where the gun was fired.
"She managed to escape. (The boy) ...first shot the teacher and then he started shooting randomly," Milosevic told broadcaster N1.
Milan Nedeljkovic, mayor of the central Vracar district where the school is located, said doctors were fighting to save the teacher's life.
The interior ministry statement said eight children and a security guard had been killed and six children had been hospitalised along with the teacher.
Police said a seventh-grade student had been arrested.
"I saw the security guard lying under the table. I saw two girls with blood on their shirts. They say he (the shooter) was quiet and a good pupil. He recently joined their class," added Milosevic, who had rushed to the school after the shooting.
Officers in helmets and bulletproof vests cordoned off the area around the school.
"I saw kids running out from the school, screaming. Parents came, they were in panic. Later I heard three shots," a girl who attends a high school adjacent to Vladislav Ribnikar told state TV RTS.
Casualties are being treated and an investigation into the motives behind shooting is under way, police said in a statement.
Mass shootings are comparatively rare in Serbia, which has very strict gun laws. But the western Balkans are awash with hundreds of thousands of illegal weapons following wars and unrest in the 1990s.
Serbian authorities have issued several amnesties for owners to hand in or register illegal guns.


At least 14 killed in explosion at weapons depot in Syria
US hits five Iranian oil tankers after attack on Navy ships
UK gives air traffic provider a week to probe outage that halted flights
Serbia's President Vucic dissolves parliament, calls snap elections
With large crowds attending, Norway lays King Harald to rest
Jordan intercepts 18 Iranian ballistic missiles
Air traffic control issue disrupts flights at major UK airports
At least 73 injured after Houthi rebels attack Saudi civilian and energy facilities
