13 января 1945 г. войска 3-го Белорусского фронта перешли в наступление в общем направлении на Кёнигсберг и, сломив оборону противника, к 18 января продвинулись на 45 км. В дальнейшем они совместно с 43-й армией 1-го Прибалтийского фронта разгромили части 3-й танковой армии немцев в районе Тильзита и Инстербурга и к 29 января вышли на побережье Балтийского моря. 130-тысячный гарнизон Кёнигсберга, имевший на вооружении 28 танков, 8 °CАУ, 4 тыс. орудий и миномётов, 450 зенитных орудий, 170 самолётов (в том числе 100 истребителей), оказался в сухопутной блокаде. 150 тыс. штатских беженцев также были блокированы в «неприступном» Кёнигсберге. Только часть из них сумела бежать по льду залива и занесённой снегом песчаной косе в Данциг. Но и Данциг вскоре оказался в блокаде.
Войска 2-го Белорусского фронта включились в операцию 14 января. После упорных боёв с частями 4-й немецкой армии они к 26 января вышли на побережье залива Фришес-Хафф и отрезали пути отступления восточно-прусской группировке противника на запад. Лишь отдельным частям 2-й полевой армии группы армий «Север» удалось отойти в западном направлении.
К концу января 1945 г. восточно-прусская группировка противника оказалась блокированной и рассечённой на три части. За 13 января – 9 февраля 1945 г. войска 2-го и 3-го Белорусских фронтов захватили 51 867 пленных, 569 танков и САУ, 335 бронемашин и бронетранспортёров, 3144 полевых и противотанковых орудия, 1192 миномёта, 8682 пулемёта, 56 486 винтовок и пистолетов-пулемётов, 13 106 автомашин, 295 паровозов, 7996 вагонов, 1704 военных склада. Из неволи было освобождено 67 765 узников фашистских концлагерей.
На втором этапе операции войска 2-го Белорусского фронта были развёрнуты для ведения боевых действий в Восточной Померании, а 3-й Белорусский и 1-й Прибалтийский фронты приступили к ликвидации блокированных в Восточной Пруссии немецких войск. В боях 10 февраля – 4 апреля 1945 г. было убито и ранено 220 тыс. немецких солдат и офицеров, 60 тыс. попало в плен; было уничтожено и захвачено в качестве трофеев 605 танков и САУ, 586 БТР, 3559 орудий, 1441 миномёт, 6447 пулемётов, 35 060 автомашин, 474 трактора и тягача, 247 радиостанций, 232 паровоза, 7673 железнодорожных вагона, 134 исправных авиамотора, 313 складов с военным имуществом. Самые ожесточённые бои развернулись за Хайльсбергский укрепрайон – более 900 долговременных железобетонных и деревоземляных оборонительных сооружений, связанных между собой бетонированными траншеями, надёжно прикрытых полями минных и невзрывных заграждений и районами затоплений местности. Здесь за 13–29 марта 1945 г. было убито более 93 тыс. «смертников Гитлера» и 46 448 захвачено в плен. С советской стороны потери в боях 13 января -4 апреля 1945 г. составили 325 тыс. человек, в том числе 74 тыс. безвозвратных.
Когда в начале апреля 1945 г. Гитлеру было доложено, что Кёнигсберг окружён плотным кольцом русских войск и горит от огня русской артиллерии, фюрер приказал коменданту крепости Кёнигсберг генералу пехоты О. Ляшу держаться и не отступать. «Я должен удержать крепость Кёнигсберг любой ценой. Пока Кёнигсберг в наших руках, я могу сказать немецкому народу: «В Восточной Пруссии находимся мы, а не русские», – сказал Гитлер своим приближённым.
6 апреля начался штурм столицы Восточной Пруссии. Кёнигсберг штурмовали 137 250 советских солдат и офицеров, имевших на вооружении 5 тыс. орудий и миномётов, 538 танков и САУ. Воздушную поддержку советской группировке оказывали 2144 боевых самолёта. За счёт распечатанных интендантских запасов, текущего ремонта повреждённых вооружений и боевой техники и производства кёнигсбергских военных заводов гарнизон крепости Кёнигсберг (4 пехотные дивизии, несколько отдельных полков и батальонов фольксштурма) в техническом оснащении усилился настолько, что не уступал советским войскам, выделенным для штурма города. Победа была достигнута не числом, а умением, о чём красноречиво говорят следующие цифры. За 6–9 апреля было уничтожено 42 тыс. немецких солдат и офицеров, 104 танка и САУ, 82 бронетранспортёра, 1193 полевых орудия и 568 миномётов, 2000 пулемётов, 42 самолёта, 1719 автомашин, 23 паровоза, 215 вагонов, 77 военных складов, 143 дота и форта; 8 тыс. немецких солдат и офицеров было захвачено в плен. Потери советских войск в уличных боях 6–9 апреля составили до 5 тыс. солдат и офицеров только убитыми, убыль ранеными, контужеными, обожжёнными и травмированными была в 5 раз больше. Утром 10 апреля Кёнигсберг сдался. По капитуляции было взято 84 тыс. пленных (в том числе 4 генерала и 1819 офицеров), 2023 орудия, 1652 миномёта, 128 самолётов, 89 танков и САУ, 119 бронетранспортёров, 2 бронепоезда, 4673 пулемёта, 8560 автомашин, 137 тракторов и тягачей, 774 паровоза, 8544 вагона, 146 катеров и барж, 441 склад с военным имуществом. На свободу вышли 15 тыс. узников нацистских тюрем и концлагерей.