С 13 января по 25 апреля 1945 года войсками 2-го, 3-го Белорусских фронтов, 1-го Прибалтийского фронта при содействии Балтийского флота проводилась Восточно-Прусская наступательная операция с целью прорыва обороны противника на кёнигсбергском и на мариенбургском направлениях и, в развитие наступления, отсечение его восточно-прусской группировки от главных вооружённых сил нацистской Германии, рассечение этой группировки на части и последовательное её уничтожение. В рамках этой крупной военной операции были осуществлены Инстербургская, Млавско-Эльбингская, Вормдиттско-Мельзакская, Хейльсбергская, Кёнигсбергская и Земландская фронтовые наступательные операции. Всего в составе сил Красной Армии, задействованных в операции, имелось около 1670 тысяч человек, 25 426 орудий и миномётов, 3 859 танков и САУ, 3 097 боевых самолётов. Оборону территории Восточной Пруссии осуществляло оперативно-стратегическое объединение вооружённых сил нацистской Германии, которое на начало операции имело 580 тысяч солдат и не менее 200 тысяч фольксштурма, 8 200 орудий и миномётов, около 1 тысячи танков и штурмовых орудий, 559 самолётов.
Используя выгодные условия местности (большое количество озёр, болот, рек, каналов, лесных массивов), немецкое командование хорошо подготовило территорию Восточной Пруссии в инженерном отношении. Здесь был создан ряд оборонительных полос и укрепленных районов на глубину 150—200 км. Главная полоса состояла, как правило, из двух позиций, на каждой из которых имелось от трех до пяти траншей. На удалении 10—20 км от переднего края находилась вторая полоса, состоявшая из одной-двух траншей. Далее в глубине размещались укреплённые районы. Три из них: «Ильменхорст», Летценский и Хайльсбергский — прикрывали подступы к Кёнигсбергу с востока, юго-востока и юга. Наиболее мощным был Хайльсбергский УР, в котором насчитывалось 911 ДОТов с плотностью на отдельных участках до 10—12 единиц на 1 км. Города Гумбиннен, Инстербург, Тильзит, Велау, Кёнигсберг, Даркемен, Летцен, Млава, Цеханув, Хайльсберг и другие были превращены в мощные узлы сопротивления. Непосредственно вокруг Кёнигсберга проходила укрепленная полоса, включавшая две-три траншеи. Помимо этого в самом городе имелось две линии фортов — внешняя и внутренняя. Форты находились во взаимной огневой связи. В каждом из них размещался гарнизон в количестве 250-300 человек. Капониры и полукапониры соединялись подземными коридорами.
Карта-схема Восточно-Прусской операции.
Наступление советских войск началось 13 января с тяжёлой подготовительной бомбардировки. Первоначально Красная Армия добилась небольшого продвижения, 3-й Белорусский фронт прошёл в первый день всего 1,5 км. К концу дня соединения 39-й и 5-й армий смогли вклиниться в глубину вражеской обороны лишь на 2-3 км. Не намного лучше складывалась обстановка и в полосе 28-й армии, где отдельные части продвинулись до 5-7 км. Не внес перелом в ход боевых действий и ввод в сражение с утра 14 января 2-го гвардейского танкового корпуса. Подвергаясь многочисленным контратакам немецких войск, ударная группировка фронта к исходу 15 января, преодолев от 6 до 10 км, прорвала главную полосу обороны, то есть за три дня с большим трудом выполнила задачу первого дня наступления. В течение следующих 5 дней Красной Армии удалось продвинуться ещё на 20 км за счёт очень высоких потерь. Впоследствии, после почти двух недель ожесточённых боев продвижение Красной Армии значительно ускорилось ценой больших потерь. В течение следующих нескольких дней 3-я танковая армия генерала Эрхарда Рауса была в значительной степени уничтожена или отведена в Кёнигсберг, в то время как 4-я армия генерала Фридриха Хоссбаха начала оказывать фланговое сопротивление.
В последующие двое суток, пользуясь улучшением погодных условий, активизировала свои действия 1-я воздушная армия, которая совершила 3468 самолёто-вылетов. Поддержка с воздуха позволила 39-й армии и 1-му танковому корпусу нарастить силу ударов и вынудить к отходу немецкий 26-й армейский корпус, занимавший оборонительный рубеж южнее р. Неман.
Соединения 2-го Белорусского фронта перешли в наступление 14 января. Преодолев сильное сопротивление немцев, 2-й Белорусский фронт Рокоссовского атаковал через Нарев. За два дня ударные группировки, наносившие удары с Ружанского и Сероцкого плацдармов, продвинулись лишь на 7-8 км. Перелома удалось достичь 16 января, когда 4-я воздушная армия нанесла по врагу массированные удары штурмовой и бомбардировочной авиацией. Действия авиации позволили наземным войскам завершить прорыв тактической зоны обороны и создать условия для ввода в сражение 5-й гвардейской танковой армии. Преследуя разрозненные части противника, её соединения блокировали Млавский укреплённый район и к утру 19 января во взаимодействии с дивизиями 48-й армии освободили г. Млава. В то же время действовавшие с Сероцкого плацдарма 65-я и 70-я армии устремились вдоль северного берега Вислы на запад и овладели крепостью Модлин.
Наступление советских войск.
20 января 2-й Белорусский фронт повернул ось своего продвижения на север в сторону Эльбинга и 22 января захватил город Алленштайн, угрожая тылу формирования Хоссбаха. 24 января ведущие танковые части 2-го Белорусского фронта достигли берега Вислинского залива, разорвав сухопутные сообщения с остальными германскими вооружёнными силами для всей 4-й армии вместе с несколькими дивизиями 2-й армии, которые теперь оказались в кармане в Восточной Пруссии. В тот же день Хоссбах начал отводить свои части назад из укреплённого города Лётцен — центра оборонительной системы Восточной Пруссии — и через серию вынужденных маршей попытался прорваться на запад.
28 января армии Баграмяна захватили Мемель; остатки трёх дивизий, защищавших город, были эвакуированы и передислоцированы на Земланд для усиления защиты там. Прорыв ударных группировок к Кёнигсбергу и успешное продвижение к Балтийскому морю создали угрозу окружения немецкой 4-й армии, в связи с чем, она начала отход на укреплённый рубеж вдоль Мазурских озер. Преследуя врага, войска 3-го Белорусского фронта во взаимодействии с 43-й армией из состава 1-го Прибалтийского фронта разгромили тильзитско-инстербургскую группировку, и к 29 января вышли на побережье Балтийского моря, обойдя Кенигсберг с севера, северо-запада и юго-запада.
Тремя днями ранее, 26 января, побережья Балтийского моря севернее Эльбинга достигли войска 2-го Белорусского фронта, перерезав пути отхода восточно-прусской группировки противника на запад. С целью ее деблокирования немецкая 4-я армия на следующий день нанесла сильный контрудар силами четырех пехотных, двух моторизованных и одной танковой дивизий. Для его отражения были задействованы 48-я и 5-я гвардейские танковые армии, 8-й гвардейский танковый, 8-й механизированный и 3-й гвардейский кавалерийский корпуса, которые к 8 февраля остановили врага и отбросили его назад. На этом участие 2-го Белорусского фронта в Восточно-Прусской операции закончилось.
После этого 3-й Белорусский фронт должен был самостоятельно завершить разгром группы армий «Север». Командующий войсками фронта планировал ударом 5-й и 5-й гвардейской танковой армий по сходящимся направлениям отсечь хайльсбергскую группировку от моря, а другими армиями рассечь её и уничтожить по частям. Однако реализовать этот замысел в течение февраля так и не удалось. Умело маневрируя резервами, немецкое командование всякий раз закрывало образовавшиеся в обороне бреши. 18 февраля в районе Мельзак был смертельно ранен и скончался генерал армии И. Д. Черняховский. В связи с этим в командование войсками 3-го Белорусского фронта вступил Маршал Советского Союза А. М. Василевский.
24 февраля в состав фронта была включена Земландская оперативная группа войск, образованная на базе 1-го Прибалтийского фронта. Но погодные условия, наступившая распутица и отставание тылов не позволили продолжить наступление. Оно возобновилось только 13 марта после тщательной подготовки и пополнения соединений людьми и материально-техническими средствами. Несмотря на ожесточенное сопротивление противника, советские войска 26 марта вышли к заливу Фриш-Гаф. Ещё через три дня остатки хейльсбергской группировки прекратили борьбу. В ходе боевых действий 93 тысячи немецких солдат и офицеров было уничтожено, а 46 тысяч — пленено. Балтийский флот за февраль — март потопил 32 транспорта и семь боевых кораблей.
Немецкие войска в обороне Кенигсберга.
В районе Кенигсберга были блокированы значительные силы противника. Для выполнения задачи по разгрому Кёнигсбергской группировки врага привлекались 39-я, 43-я, 50-я, 11-я гвардейская армии, 1-я и 3-я воздушные армии 3-го Белорусского фронта, соединения 18-й армии Дальней авиации, ВВС Балтийского флота, два бомбардировочных авиационных корпуса РВГК. С учетом того, что боевые действия предстояло вести на местности с большим количеством инженерных заграждений и в условиях укреплённого города, 47 % артиллерийских систем составляли тяжёлые орудия, орудия большой и особой мощности. По этой же причине более 45 % от общего числа самолётов составляли бомбардировщики.
6 апреля после артиллерийской подготовки войска фронта перешли в наступление. Уже в первый день соединения 39-й армии перерезали железную дорогу Кенигсберг — Пиллау, в результате чего было прервано сообщение гарнизона крепости с Земландской группой противника. Одновременно дивизии 43, 50-й и 11-й гвардейской армий захватили 15 населенных пунктов, непосредственно прилегавших к Кенигсбергу, а затем ворвались в город и освободили более 100 его кварталов. Решающими стали последующие два дня, когда установилась летная погода. В течение 7 апреля авиация произвела 4758 самолето-вылетов и сбросила на укрепления врага 1658 т. бомб. На следующий день было совершено уже более 6 тыс. самолето-вылетов. На позиции немецких войск обрушилось 2100 т бомб, что оказало значительное влияние на снижение их боевых возможностей. К исходу 8 апреля штурмовые группы, созданные в стрелковых дивизиях и полках, захватили порт и железнодорожный узел города, а также ряд важных военно-промышленных объектов. Они окончательно отрезали и изолировали гарнизон крепости от Земландского полуострова. Несмотря на это, его командование отклонило переданное через парламентеров предложение сложить оружие.
9 апреля после массированных ударов артиллерии и авиации по уцелевшим узлам сопротивления стрелковые дивизии 11-й гвардейской армии при поддержке танков и самоходной артиллерии атаковали врага в центре города и к 21 часу заставили его капитулировать. В ходе боев за Кёнигсберг войска фронта уничтожили около 42 тысяч солдат и офицеров противника, пленили 92 тысячи человек.
К концу первой декады апреля остатки восточно-прусской группировки врага продолжали удерживать только Земландский полуостров. Для их разгрома командующий войсками 3-го Белорусского фронта развернул в полосе шириной около 40 км 111,5 тысяч солдат и офицеров. Земландская операция началась 13 апреля 1945 года переходом в наступление войск ударной группировки Земландской группы войск при авиационной поддержке 1-й и 3-й воздушных армий. Утром при поддержке артиллерии и авиации соединения 5-й и 39-й армий атаковали его укрепленные позиции, стремясь рассечь Земландскую группировку на две части. К исходу первого дня боёв советские войска продвинулись на 3—5 км, взяв плен свыше 4000 человек. 14 апреля противник начал отводить свои войска к Пиллау. Балтийский флот с бронекатеров высадил два тактических десанта на дамбу Кёнигсбергского канала, что создало благоприятные условия для наступления войск фронта вдоль побережья залива Фришес-Хафф.
20 апреля в сражение была введена 11-я гвардейская армия, которая к исходу 25 апреля овладела Пиллау. После разгрома основных сил группы «Земланд» противник продолжал удерживать в своих руках лишь косу Фрише-Нерунг, бои по освобождению которой продолжались до 8 мая, а 9 мая более 22000 солдат и офицеров сложили оружие. Земландская наступательная операция завершила наступление советских войск в Восточной Пруссии.
Немецкие военнопленные в Кенигсберге.
Общие потери Красной Армии и Балтийского флота за весь период проведения Восточно-Прусской наступательной операции составили: 126,5 тысяч погибшими, 458 тысяч раненными. Немецкие потери составили 105 тысяч убитыми и 220 тысяч пленными.