Eight children and a security guard have been killed after a 14-year-old boy opened fire on his teacher and other students in a school shooting in Serbia, the country’s interior ministry has said.

The seventh-grade student used his father’s gun for the attack at the Vladislav Ribnikar elementary school in the capital Belgrade, officers added.

Milan Nedeljkovic, mayor of the central Vracar district where the school is located, said the teacher is fighting for their life after being shot.

Six children who were injured are also being treated.

The suspect has been arrested with local media footage showing his head covered as officers led him to a car parked nearby.

Police have identified him only by his initials KK and said he was arrested in the schoolyard.

Officers in helmets and bulletproof vests have cordoned off the area after the shooting at around 8:40am local time (7:40am UK time).

Reports in Serbia say terrified parents arrived at the school trying to find their children.

Milan Milosevic said his daughter was in the classroom where the shooting began.

"She managed to escape. [The boy] …first shot the teacher and then he started shooting randomly," Mr Milosevic told broadcaster N1.

He added: "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."

A girl who attends a high school adjacent to Vladislav Ribnikar told state TV RTS: "I saw kids running out from the school, screaming. Parents came, they were in panic. Later I heard three shots."

An investigation into the motive 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.

© Sky News 2023