Connue à l'origine sous le nom de Serdica, Sofia a été fondée il y a 3 000 ans par les Thraces, mais l'histoire de la ville remonte à environ 7 000 ans, ce qui en fait l'une des plus anciennes villes d'Europe. En 29 avant JC, Sofia était aux mains des Romains sous l'empereur Trajan, qui, avec son successeur Dioclétien, commença à agrandir la ville. La ville était aimée des empereurs, devenant plus tard une plaque tournante des empires romain d'Orient puis byzantin, avant d'être rasée par les Huns en 447. Elle a été reconstruite par l'empereur Justinien et est restée un élément clé de Byzance jusqu'en 809, date à laquelle elle a été conquise par les Bulgares sous Han Krum. En 1089, elle retourna à Byzance jusqu'en 1189, date à laquelle elle fut finalement conquise par le tsar de Bulgarie Ivan Asen I. Une autre conquête, cette fois par les Ottomans, eut lieu en 1382 et les Turcs vinrent à Sofia pour rester. Sous les Ottomans, Sofia a prospéré et est devenue l'une des principales villes de l'Empire - une position qu'elle a conservée jusqu'au XVIIIe siècle. Avec les Turcs finalement expulsés en 1878 pendant la guerre russo-turque, Sofia est devenue la capitale du royaume de Bulgarie nouvellement indépendant. La Première Guerre mondiale a amené la ville au bord de la destruction après avoir rejoint la guerre du côté de l'Axe, tandis que 20 ans plus tard, se battant à nouveau avec les puissances de l'Axe, elle fut lourdement bombardée par la RAF. La fin de la Seconde Guerre mondiale a amené l'occupation soviétique dans la ville alors que la Bulgarie faisait partie du bloc de l'Est. L'industrialisation rapide a suivi, avec de nouvelles usines et des immeubles d'habitation surgissant dans toute la ville. L'indépendance est revenue après la chute du mur de Berlin en 1989, même si les choses semblaient précaires dans les années 1990 lorsque l'hyperinflation s'est installée. Aujourd'hui, Sofia est de nouveau politiquement calme et économiquement prospère.