Из-за несогласованности действий частей 33-й дивизии и сложных погодных условий штурм города начался не одновременно. 73-й стрелковый полк в течение 20 января прокладывал дорогу через снежные заносы и вражеские засады. Пройдя с боями по бездорожью за два дня свыше 50 километров, полк сбил вражеские заслоны в Городецких, Приборобе, Медово, Куземкино. К исходу 20 января полк захватил мост через Ловать у деревни Куземкино и перерезал дорогу Локня – Холм. Без передышки в ночь на 21 января полк атаковал противника в Холме и завязал бой на юго-западной окраине города. 82-й стрелковый и 44-й артиллерийский полки готовились к штурму в районе Бобяхино – Залесье. 164-й стрелковый полк, совершив 20-километровый лыжный марш-бросок по болотам в обход Холма с севера, был обнаружен противником и вынужден был атаковать днем с ходу. Атака полком города производилась с северо-запада, по Старорусской дороге, и с северо-востока, со стороны бывшего кирпичного завода. В первом же бою проявилась хорошая подготовка немецкого гарнизона к обороне. За два дня противник подготовил мощные узлы обороны и разместил в них войска гарнизона и отходящих частей 123-й дивизии. Узел обороны Gerberei (кожевенный завод) на севере города, в излучине Ловати, господствовал над местностью и контролировал все подходы к городу. Кроме главного опорного пункта в сооружениях кожевенного завода он имел три линейных полевых участка обороны – в северной части Татиловского вала, перекрывающий Старорусскую дорогу; по высотам северо-восточнее кожевенного завода и внутренний, по западному берегу реки Ловать. В ДОТах и ДЗОТах размещались две моторизованные полицейские роты и подразделения 416-го пехотного полка, общей численностью около 1,5 батальона. Атака 164-го полка на Gerberei проводилась без разведки, без предварительной подготовки, без связи с командованием дивизии, без артиллерийской поддержки. Полк сразу же понес большие потери. В батальоне, атакующем по Старорусской дороге, было только погибших более 50 человек. Погибли два ротных и один взводный командир, большинство остальных командиров рот и взводов были ранены. Несмотря на это, батальон ворвался на северную окраину города и захватил несколько домов. Батальон, атакующий со стороны Кутанского ручья, был встречен сильным пулеметным огнем. В ходе ожесточенных боев нашим войскам удалось захватить высоты, форсировать Ловать и взять в полукольцо кожевенный завод. В атаках на врага погибли командир роты и два взводных и свыше 30 красноармейцев[11]. Одна из рот батальона была выведена на рубеж речки Шульга для отражения возможного удара извне. В результате действий 164-го полка Старорусская дорога была перерезана, основной северный узел обороны блокирован, захвачен ряд домов северной части города. Однако и сам полк понес достаточно высокие потери. По результатам боев штаб группы Шерера впервые узнал о подходе к городу 33-й стрелковой дивизии. Справедливо опасаясь окружения, немцы выдвинули на охрану дороги Холм – Локня передовые подразделения прибывающей 218-й дивизии (самокатный эскадрон, моторизованную противотанковую роту) и 10-й моторизованный пулеметный батальон. В районе Осиновка – Подберезье были сосредоточены основные силы 386-го пехотного полка 218-й германской дивизии.