Kastoria en tant que ville figure sur la carte depuis au moins le 6ème siècle. Mais son nom actuel date de la fin du 10ème siècle et on dit qu'il vient des castors. On pense que Kastoria a des origines anciennes. Elle a été identifiée comme l'ancienne ville de Keletron, qui se dressait probablement sur une colline au-dessus du site actuel de la ville, et fut occupée par les Romains en 200 avant J.-C. L'histoire de Kastoria fut paisible jusqu'au Xe siècle, lorsque son emplacement stratégique l'amena en litige entre l'Empire byzantin et le Premier Empire bulgare. Vers 1385, l'Empire ottoman s'empara de Kastoria et la conserva jusqu'à la première guerre des Balkans en 1912, date à laquelle elle fut prise par la Grèce. Pendant la Seconde Guerre mondiale et la guerre civile grecque, la ville a subi des batailles répétées, entraînant de graves dommages. Fin mars 1944, sous l'occupation allemande nazie pendant la Seconde Guerre mondiale, 763 Juifs de Kastoria furent capturés par les troupes nazies et envoyés à Auschwitz-Birkenau.