Eight children and a security guard are those who were killed when the seventh-guard student opened fire from his father's gun at the Vladislav Ribnikar elementary school in the capital Belgrade, police have said, Sky News reported.
The suspect has been arrested with local media footage showing his head covered as officers led him to a car parked near the school.
Officers in helmets and bulletproof vests have cordoned off the area after the shooting at around 8:40 am local time (7:40 am UK time).
Reports in Serbia say terrified parents arrived at the school trying to find their children.
Milan Milosevic, the father of one of the pupils at the Vladislav Ribnikar elementary school, said his daughter was in the classroom when the shooting began.
Casualties are being treated and an investigation into the motives behind the shooting is underway, police said in a statement.
SKH/PR