Центр города
К 18 января в Холме находились лишь 65-й моторизованный полицейский батальон, тыловые части 123-й пехотной дивизии и некоторые другие небольшие охранные части 281-й охранной дивизии. Всего около 1,5 тысячи человек (еще несколько сот раненых полевого госпиталя). Еще около тысячи – в гарнизонах Сопки, Гороховка и Княжий Клин (416-й полк с артдивизионом и саперным батальоном). Крупными резервами противник не располагал. В группе армий «Север» еще 16 декабря были начаты переброска 218-й пехотной дивизии из Дании и подготовка охранных войск для борьбы с регулярными частями Красной армии. В начале января 218-я дивизия была в Риге, а 13 января начала выдвижение в Демянск. К 18 января ее передовые части двигались на автомашинах в районе Бежаницы. В качестве авангарда шла 8-я ягдкоманда. Основные силы германского соединения базировались на Псков и Остров.
Советское командование планировало взять Холм 18 января совместным ударом 33-й стрелковой дивизии, наступающей по дороге Марево – Холм, и 2-й Ленинградской партизанской бригады от партизанского края (Рдейские и Полистовские болота).
Первый этап. Взятие Холма партизанами
18 января 1942 г.
По замыслу штаба Северо-Западного фронта партизаны 2-й Ленинградской бригады (около одной тысячи активных штыков), которой командовал Н. Г. Васильев, должны были в ночь с 17 на 18 января ворваться в город Холм, завязать уличные бои и удерживать его до подхода с востока наших передовых частей 33-й стрелковой дивизии. Партизанская операция была продумана и хорошо организована. За 4 дня партизаны прошли свыше 100 километров, собрав 14 отрядов в единый кулак. Была проведена тщательная разведка сил противника. Партизаны выставили четыре пушечно-пулеметных заслона на основных дорогах, ведущих в город, в районе Каменка, Купалище, Сопки, Князево – Мошонки. Атака планировалась со всех сторон, по семи направлениям. Каждому отряду была поставлена определенная задача. Были назначены ударные и истребительные (блокирующие) группы.
Бой за город Холм партизаны начали в 4 часа утра 18 января. Внезапной атакой с трех направлений партизаны ворвались в город, с боем занимая дом за домом, квартал за кварталом. Ожесточенный бой в центре продолжался до середины дня. Партизаны разгромили Холмскую комендатуру, освободили заключенных и заняли весь город, кроме тюрьмы и собора. За их толстыми стенами отсиживались, огрызаясь огнем, остатки гарнизона.
В это время из Подберезья в район Холма при поддержке нескольких легких танков и БТР выдвигается охранный отряд противника. Уже на этапе выхода партизанского заслона № 3 на позицию в село Сопки ему пришлось вступить в бой с охранными подразделениями врага. Удачная засада на пути движения автоколонны охранного отряда впоследствии обернулась жестоким боем с подходящими частями противника. В течение дня сюда были подтянуты 8-я ягдкоманда (спецотряд по борьбе с партизанами) при поддержке батареи 184-го дивизиона штурмовых орудий и рота 53-го полицейского батальона. Понеся большие потери после 13-часового боя заслон отступил в Рдейские болота. В бою погибли секретарь Славковского РК ВКП (б) Ф. Е. Барулин и председатель Сошихинского РИК П. П. Рыжов.
Восемь часов партизаны держались в городе, но передовые части 33-й стрелковой дивизии в этот день так и не вышли к Холму. Несмотря на то что между партизанским заслоном № 2 и авангардом дивизии было всего 15 километров, связь между ними отсутствовала. Из-за отсутствия связи Директива Северо-Западного фронта и приказ командующего 3-й Ударной армией полковнику А. Макарьеву о переносе времени штурма на 18 января пришел только в 15.00. 18 января 33-я стрелковая дивизия вследствие растянутых коммуникаций, отставших тылов и отсутствия обеспечения практически бездействовала, собираясь с силами и выдвигаясь на Ельно и Снопово. Во второй половине дня партизанские отряды по решению командования бригады из-за недостатка боеприпасов оставили город. В 23.30 разведка и авангард 33-й дивизии выдвинулись на Холм.
Немецкое отделение в центре города
В результате многочасового боя за овладение городом партизанами было перебито 625 немецких солдат и офицеров, уничтожено в самом Холме и на подступах к нему 99 грузовых и легковых автомашин, разрушены две радиостанции, крупный стационарный узел связи, автоцистерна с горючим, одно орудие и прочее военное имущество.
Потери партизан в этой операции составили 52 человека убитыми и ранеными. При штурме городской тюрьмы геройски погибли командир партизанского отряда «Дружный», председатель Дновского РИК В. И. Зиновьев и комиссар отряда, секретарь Дновского РК ВКП (б) П. В. Селецкий, командир партизанского отряда «Храбрый» А. Н. Горяинов, другие бойцы бригады.
Командиру отряда «Дружный» В. И. Зиновьеву посмертно присвоено звание Героя Советского Союза. На месте боев отряда возле городского Дома культуры в Холме в его честь установлен памятник. Имя Зиновьева носит одна из улиц города.
После того как партизаны покинули город, в него вошла 8-я ягдкоманда. Все мужское население Татиловской части города близ аэродрома было расстреляно, по улице Верхне-Воскресенской были сожжены дома вместе с находившимися в них жителями.
Таким образом, если бы передовые части 33-й дивизии соединились с партизанами и вошли в город, Холм был бы взят уже 18 января 1942 года.
Второй этап. Первый штурм
19–29 января 1942 г.
В 15.00 18 января командир 33-й стрелковой дивизии полковник А. Макарьев получает Директиву фронта о наступлении на Холм[9]. В 23.30 дивизия разворачивается с Ельно-Сноповского направления на Холм и начинает движение.