I primi insediamenti di popolazioni slave in territorio serbo risalgono al VI secolo d.C. I nuovi arrivati schiavizzarono le genti precedentemente insediate (come gli Illirici, i Sarmati o i Greci).
Con la dominazione turca si assistette ad un esodo forzato di Serbi dalle regioni meridionali (in particolare dal Kosovo e Methoija) verso i Balcani settentrionali e il Bassopiano Pannonico, in particolare tra il 1690 e il 1763. Alcune stime ipotizzano che solo nel 1690 i Serbi costretti a spostarsi verso nord furono un numero compreso tra gli 80.000 e i 185.000.
Molte delle terre abitate in precedenza da Serbi vennero popolate da Albanesi, che potevano godere dell'appoggio dei Turchi. Con il corso dei secoli la popolazione albanese è divenuta stabilmente la maggioranza nella provincia del Kosovo, mentre calava progressivamente il numero dei Serbi.
La regione a nord di Belgrado, la Voivodina, venne invasa nel X secolo dagli Ungheresi. Nei secoli successivi un discreto numero di Ungheresi si stabilì definitivamente in Vojvodina, benché fino al XIII secolo fosse nettamente dominante la popolazione slava. Nel 1500 i Magiari erano però divenuti la maggior etnia del territorio. Dal 1699 la Vojvodina venne inclusa nel territorio dell'Impero austro-ungarico e questo comportò l'insediamento nella regione di numerose etnie presenti nell'Impero: Cechi, Croati, Romeni, Ruteni, Slovacchi, Tedeschi, e Ucraini.
Frammentazione etnica e linguistica
La popolazione della Serbia, pur caratterizzata da un chiaro blocco etnico-linguistico nazionale, presenta al suo interno un insieme molto vasto di etnie. I dati forniti in seguito indicano la distribuzione della popolazione in base all'appartenenza ad un gruppo etnico (dati dei censimenti ufficiali del 1991 e del 2002; per il Kosovo una stima del 2000).