Im 6. Jahrhundert eroberten zahlreiche slawische Stämme die Stadt und zerstörten sie größtenteils wieder. So geriet der Name Serdica in Vergessenheit. 809 wurde die Stadt vom Heer des bulgarischen Khans Krum eingenommen und gehörte seitdem zum Ersten Bulgarischen Reich. „Sredez“ (Mitte), so nannten sie die Slawen wegen ihrer zentralen Lage auf der Balkanhalbinsel, entwickelte sich zu einem wichtigen strategischen und administrativen Zentrum.
Es folgten weitere Überfälle durch die Petschenegen und Kreuzritter, was erneut zu Verwüstungen führte. Unter der byzantinischen Herrschaft zwischen 1018 und 1194 hieß die Stadt „Triadica“. Während des Zweiten Bulgarischen Reiches wurde sie weiter befestigt und erhielt im 14. Jahrhundert nach der Kirche „Sweta Sofia“ ihren heutigen Namen „Sofia“. Dieser Name wird zum ersten Mal in der Witoscha-Schenkungsurkunde des bulgarischen Herrschers Iwan Schischman aus dem Jahre 1371 erwähnt, mit der er dem Dragalewzi-Kloster Boden übereignete.