
Козельская крепость находилась на возвышенности в петле реки Другусны непосредственно перед её впадением в Жиздру. С трёх сторон её защищали обрывистые берега обеих рек, а с четвёртой — узкий перешеек, который был перерезан оврагом, превращённым в широкий и глубокий ров.
Традиционно считается, что детинец Козельска XII—XIV веков находился в горловине петли, перекрывая подступы к расположенному севернее посаду, который, вероятно, имел собственную линию укреплений — окольный город. По другой версии, детинец располагался к северо-востоку от окольного города и занимал площадь лишь 0,8 га. В конце XVII века кремль (детинец) уже однозначно находился в горловине петли, он был окружён рубленной стеной, а его периметр составлял около 828,6 м. Стены венчали шесть глухих и две проездные башни.
Внутри кремля стояли две церкви — соборная Успенская и приходская Св. Параскевы Пятницы, несколько жилых и осадных домов, а также административные и казённые постройки: воеводский двор, приказная изба, пороховой погреб, тюрьма и другие. В самой петле Другусны располагался окольный город, который до Смутного времени был опоясан острожной стеной и с неколькими глухими и проездными башнями, однако впоследствии, вероятно, его укрепления уже не восстанавливались. В окольном городе находилась торговая площадь с лавками и три приходские церкви. На противоположенном берегу Другусны находилась Казачья слобода с Благовещенской церковью, к югу от кремля — Стрелецкая слобода с Богоявленской церковью.
В летописях Козельск впервые упомянут под 1146 годом. В 1196 году Козельск, принадлежавший черниговским Ольговичам, был сожжён владимирским князем Всеволодом Большое Гнездо. В начале XIII века Козельск стал центром небольшого удела в Черниговском княжестве.
Наибольшую известность Козельску принесла героическая оборона от монголов весной 1238 года, продлившаяся семь недель. Поскольку лёд на Жиздре и Другусне ослаб, монголы не могли штурмовать город со всех сторон и вынуждены были атаковать наиболее сильную напольную сторону детинца, причём на довольно узком участке (200 м). Защитники крепости в отчаянной вылазке уничтожили около четырёх тысяч нападающих и их метательные машины, но и сами все погибли. Монголы истребили оставшееся население города, в том числе малолетнего князя Василия.
В 1406 году Козельск был захвачен литовцами, однако вскоре были вынуждены покинуть его. В 1445 году литовцы безуспешно осаждали его, однако взяли в 1448 году. В 1480 году в отместку за неоказание помощи со стороны своего союзника короля Казимира IV ордынский хан Ахмат разорил ряд литовских городов, в том числе Козельск. В 1494 году Козельск отошёл к Русскому государству. После построения Большой Засечной черты в эпоху Ивана Грозного в Козельске находилось управление её наиболее западным отрезком — козельскими засеками. В эту же эпоху были обновлены укрепления и самого Козельска.
В 1607 году Козельск, примкнувший к восстанию Ивана Болотникова, безуспешно осаждался царским воеводой Артемием Измайловым. Безуспешной была и осада Козельска в том же году со стороны отряда Василия Литвинова-Мосальского. Позже город был опустошён летучим отрядом из войск короля Сигизмунда III. В 1617 году город безуспешно осаждало войско воевод Фёдора Волынского и Матвея Челюсткина, однако вскоре город был возвращён России по условиям Деулинского перемирия. Впоследствии Козельская крепость была восстановлена усилиями воеводы Зиновия Яковлева.
В 1695 или 1696 году крепость Козельская сильно пострадала от пожара, сгорели около 473 м крепостной стены. Всё остальное вскоре сгнило и обвалилось. От земляных укреплений Козельска не сохранилось почти никаких следов, уцелел только ров детинца, по дну которого в XIX веке прошла железнодорожная ветка. Остатки земляных валов уцелели на улицах Белёвская горка и Спартаковская. О древних укреплениях Козельска напоминает улица Земляной Вал. Единственный уцелевший современник крепости — Вознесенская церковь 1620-х годов постройки.




