O guarda escolar da escola básica Vladislav Ribnikar, no centro de Belgrado, também morreu no tiroteio.
De acordo com as autoridades policiais, outras seis crianças e uma professora ficaram feridas.
O suspeito, um estudante do sétimo ano do ensino básico, foi detido, segundo a polícia. O adolescente - identificado pelas iniciais K.K., nascido em 2009 - era aluno na escola onde ocorreu o tiroteio.
A polícia acrescentou que o adolescente aparentemente disparou vários tiros, com arma do seu pai, contra outros alunos e o guarda que fazia a segurança da escola.
As autoridades receberam uma chamada telefónica a propósito de um tiroteio na escola Vladislav Ribnikar, por volta das 08:40, horário local (07:40 em Lisboa), referiram as autoridades policiais, que isolaram os quarteirões em redor.
Imagens dos meios de comunicação locais mostraram a comoção do lado de fora da escola quando a polícia retirou o suspeito do tiroteio do local.
Tiroteios em massa na Sérvia são extremamente raros, mas ainda permanecem no país muitas armas utilizadas nas guerras da década de 1990, que se seguiram à desintegração da Jugoslávia.
O ensino básico na Sérvia é composto por oito anos de escolaridade.