29 января командование 3-й Ударной армии выдвигает под Холм войска для решающего штурма города. В составе армии создается Северо-Западная группа войск под управлением командира 33-й стрелковой дивизии. В группу вместо Старорусского направления перебрасывается свежая 391-я стрелковая дивизия. Стрелковые бригады второго эшелона с приданными лыжными батальонами действуют на германские коммуникации: 45-я – в районе Сопки, 54-я – в районе Темный Бор, Качаново. Северо-Западная группа усилена 79-м лыжным батальоном, 613-м артполком РГК, 603-м минометным полком РГК, 171-м противотанковым артполком. Вместо обескровленного 146-го легкого танкового батальона от Молвотиц перебрасывается 170-й танковый батальон, в составе которого имеется около десятка ленд-лизовских тяжелых танков Mk.II «Матильда». Это заставляет командование 39-го моторизованного корпуса отвлечь часть сил группы Укерманна на борьбу с 45-й бригадой, а 8-ю танковую дивизию (резерв группы армий) – на борьбу с 54-й бригадой. Кроме того, под Великими Луками был атакован советскими войсками 323-й пехотный полк с 1-м артдивизионом 218-й пехотной дивизии. Он понес большие потери и вынужден был ввязаться в позиционные бои, что ослабило силы группы Укерманна. Но силы усиления Северо-Западной группы из-за постоянных снегопадов и заносов продвигаются к Холму крайне медленно – не более 10–15 километров в сутки.
29 января 54-я стрелковая бригада тремя отрядами атаковала немецкие гарнизоны 8-й танковой дивизии на шоссе Холм – Локня. 1-й батальон овладел деревнями Поколотье, Темный Бор и вел бой за Петрово. 3-й батальон в районе деревень Качаново, Кумарино столкнулся с главными силами мотострелковой бригады 8-й танковой дивизии и в течение двух дней вел ожесточенный бой в лесу и за деревни. 2-й батальон безуспешно атаковал Большие Куницы. Рота 65-го лыжного батальона вышла в район Хочуж – Удино южнее Подберезья. 45-я бригада вышла в район деревни Сопки и при поддержке нескольких танков 146-го танкового батальона безуспешно пыталась атаковать опорный пункт противника. Ночью 73-й стрелковый полк 33-й стрелковой дивизии одним батальоном перехватил обходную дорогу на Холм и вновь перерезал основные коммуникации группы Шерера. В результате немцы усилили натиск на Куземкино, атакуя село по 5–6 раз в день при поддержке штурмового орудия. Бои за Куземкино приобрели крайне ожесточенный характер. В боях отличился расчет роты ПВО 73-го полка, огнем крупнокалиберного пулемета отражавший массированные атаки противника[25]. В этот день 82-й стрелковый полк с юго-востока и два батальона 164-го стрелкового полка с юга провели очередной штурм города. Один батальон 164-го полка удерживал северную окраину города. 82-й полк при поддержке 4-го дивизиона 613-го артполка в ожесточенных боях захватил два квартала на юго-востоке Холма. 10-я батарея полка была выдвинута на прямую наводку в район школы, где противником был создан мощный опорный пункт. Артиллерийским огнем батареи здание школы было разрушено, огневые точки противника уничтожены. Это позволило нашим войскам занять один из кварталов города[26]. В бою погиб командир стрелкового взвода. 164-й полк с боем овладел деревней Медово, но продвинуться к Холму ближе 200–250 метров не смог. Два батальона 164-го стрелкового полка с юга провели три атаки, штурмуя город. В третьей атаке участвовало 5 танков 146-го танкового батальона. Один был подбит, один поврежден. Приданный 82-му полку танк тоже был подбит на восточной окраине Холма. В 33-й дивизии за 10 дней боев погибло 748 человек. По немецким данным, в этот день при штурме в городе участвовало семь танков, из которых подбито три. Командование 39-го корпуса признало ситуацию под Холмом крайне сложной, город в жестокой блокаде, под шквальным артиллерийским огнем тяжелых орудий, невозможность деблокады наличными средствами и высокие санитарные потери. В 9.30 советский самолет сбил немецкий истребитель. Экипаж погиб.