В 14.00 15 декабря к командующему гарнизоном Великих Лук были направлены советские парламентеры с предложением сдаться. Однако фон Засс отказался принимать пакет с ультиматумом, сославшись на приказ фюрера. После возвращения парламентеров боевые действия продолжились с прежним ожесточением.
Из-за неравномерной подготовки к штурму задача взять город к 16 декабря не была выполнена. 16 декабря К.Н.Галицкий решил ввести в бой 249-ю стрелковую дивизию эстонского корпуса. 257-й стрелковой дивизии поручалось овладеть опорными пунктами на окраине Великих Лук, нависавшими над флангом наступления. Также 16 декабря гарнизону Великих Лук была передана радиограмма Гитлера: «Командиру боевой группы Великие Луки. Я выражаю свое восхищение вам и вашим солдатам за вашу храбрость. Я убежден, что вы будете держаться как сталь подобно генерелу Шереру в Холме, до тех пор пока вас не освободят».
Очередной этап наступления начался 18 декабря. Лучше других, как и в предыдущие дни, действовала 257-й стрелковая дивизия. Эстонские соединения почти не продвигались. По утверждению немцев, из эстонских дивизий на их сторону шел поток перебежчиков. Командующий 3-й ударной армией решил ввести в бой за Великие Луки 47-ю механизированную бригаду 2-го механизированного корпуса. Ударом 257-й стрелковой дивизии с севера и 47-й механизированной бригады с юга предполагалось разорвать группировку противника пополам.
25 декабря танкисты и пехотинцы начали наступление навстречу друг другу. К 30 декабря 257-я стрелковая дивизия овладела северной половиной центральной части города. Навстречу ей при поддержке 13-го танкового полка огнеметных танков наступала 47-я механизированная бригада. В 20.20 26 декабря комендант гарнизона Великих Лук докладывал генералу Шереру: «У нас больше не осталось противотанковых пушек, которыми мы могли бы противостоять русским тяжелым танкам. Мы срочно просим доставить планерами три 75-мм противотанковых орудия с боекомплектом и расчетами». В ночь с 28 на 29 декабря гарнизону Великих Лук было сброшено на парашютах восемью бомбардировщиками Хейнкель-111 и доставлено пятью планерами 13,8 тонны боеприпасов и медикаментов, две противотанковые пушки с расчетами. К вечеру 30 декабря наступавшие с севера и юга подразделения советских войск разделяли только четыре квартала. 31 декабря разгорелись самые жестокие уличные бои. Командовавший гарнизоном Великих Лук подполковник фон Засс понимал, что потеря связи с западной группировкой снижает шансы на успешное деблокирование. К 1 января большая часть города была в руках советских войск. Соединившиеся 257-я стрелковая дивизия и 47-я механизированная бригада захватили всю центральную часть города, разъединив гарнизон на две части — одна в районе железнодорожного вокзала, а вторая — в районе старой крепости.
Понимая низкую эффективность «национальных» дивизий, советское командование продолжило штурм города силами проверенных в бою соединений — 47-й механизированной бригады и 257-й стрелковой дивизии. Бригада 6 января захватила вокзал, который был ядром обороны восточной части города. После этого бригаду вывели в оборону на западные окраины города, деблокирующая группировка пробилась уже слишком близко. Вскоре были ликвидированы остальные опорные пункты немцев — 13 января пала Курьяниха, 15 января — военный городок, а 16 января — железнодорожное депо и Алигардово. В последнем был взят в плен со своим штабом командир гарнизона «крепости Великие Луки» подполковник фон Засс. В 1946 г. фон Засс был осужден за военные преступления и публично повешен в Великих Луках.
Параллельно разгрому основных сил гарнизона в районе железнодорожного вокзала и депо проводился штурм цитадели. Старую крепость размером 250Х100 метров обороняли на 31 декабря около 400 человек. Высокие обледенелые скаты валов крепости делали ее штурм невозможным для танков и трудным для пехоты. Для штурма были заготовлены специальные лестницы. Несмотря на жестокий обстрел артиллерии и удары авиации полностью систему огня гарнизона подавить не удалось, и 15 января внутрь крепости прорвалась только одна штурмовая группа с северо-востока. Однако этот отряд отвлек на себя значительные силы обороняющихся, что позволило остальным штурмовым группам ворваться в цитадель с севера и юга. К 7.00 16 января крепость пала. В цитадели было захвачено 235 пленных, 9 танков (из числа прорвавшихся извне) и большое количество разнообразного оружия.