Sofia fut créée à l'origine par une tribu celtique, les Serdes, sous le nom de Serditsa. Après avoir été sous le règne de Philippe de Macédoine puis de son fils Alexandre le Grand, la ville fut conquise par l'Empire romain vers 29 avant Jésus-Christ, et développée. En 447, la ville fut ravagée par les Huns, puis reconstruite par l'empereur byzantin Justinien. C'est de cette époque florissante que datent les pans de murailles encore visibles aujourd'hui. La formation du Premier Empire bulgare terminé, Sofia, alors nommée Sredets, devient un centre administratif et défensif important. Sofia fut alors conquise par l'Empire ottoman au 14e siècle, ce qui fut le début d'une longue occupation qui durera plus de 400 ans. C'est la Russie qui libérera le pays en 1878. L'indépendance de la Bulgarie retrouvée, Sofia en devint la capitale, abandonnant dans la foulée son ancien nom de Sredets.