Kastoria come città è sulla mappa almeno dal VI secolo. Prese però il suo nome solo alla fine del X secolo e si dice derivi dai castori. Si ritiene che Kastoria abbia un'origine antica. È stata identificata con l'antica città di Keletron, situata probabilmente su un'altura sopra l'attuale ubicazione della città, e fu occupata dai Romani nel 200 a.C. La storia di Kastoria fu di pace fino al X secolo, quando la sua posizione strategica portò a una disputa tra l'Impero Bizantino e il Primo Impero Bulgaro. Intorno al 1385, l'impero ottomano occupò Kastoria e la tenne fino alla prima guerra balcanica (1912) quando la Grecia la occupò. Sia durante la seconda guerra mondiale che durante la guerra civile greca, la città subì ripetute battaglie, che provocarono gravi danni. Alla fine di marzo 1944, sotto l'occupazione tedesca nazista durante la seconda guerra mondiale, 763 ebrei kastoriani furono catturati dalle truppe naziste e inviati ad Auschwitz-Birkenau.