20 декабря оба фронта перешли в наступление, упредив готовящийся немецкий контрудар с линии «Маргариты». Они прорвали немецкую оборону и 26 декабря соединились севернее венгерской столицы, в районе Эстергома, окружив в Будапеште 188-тысячную группировку под командованием генерала Пфеффер-Вильденбруха.
29 декабря 1944 года окруженным был направлен ультиматум о сдаче. Немцы отвергли его, а вручившие ультиматум парламентеры были убиты. После этого началось сражение за Будапешт, который стал ключом немецкой обороны на данном направлении. Бои за город отличались упорством и длительностью. Внутри города было создано до 110 узлов сопротивления и более 200 опорных пунктов. В целях обороны широко использовались подвалы, метро, канализационная сеть, каменные здания и заборы.
За 20 дней боев, к 18 января 1945 года, Будапештская группа советских войск (генералы И. М. Афонин, затем И. М. Манагаров) сумела овладеть левобережной частью города — Пештом. В правобережной части столицы Венгрии — холмистой Будде, превращенной ее защитниками в гигантскую крепость, бои продолжались еще почти 4 недели.
Стремясь сохранить памятники архитектуры и не причинять лишних бед населению города, советское командование избегало применять здесь тяжелую артиллерию и авиацию. «Тяжелые бомбардировщики на столицу Венгрии не летали. Участие в штурме города повсеместно выпало на долю „ильюшиных“, которые, несмотря на сильное противодействие зениток, обрушивали свои бомбы и пушечно-пулеметный огонь точно на заданную цель… Точность в этом деле требовалась необыкновенная. Постоянно бывало так, что бомбить приходилось именно этот, а не соседний дом», — вспоминал военный корреспондент Павел Лукницкий.
Сражение за Будапешт распалось на множество локальных стычек в городских кварталах. Просачивание, засада, ближний бой — стали основой тактики борьбы за венгерскую столицу. Это была битва взводных командиров, от ратного мастерства и инициативы которых зависел общий успех операции. Главными участниками боев на будапештских улицах стали небольшие штурмовые группы, а также идущие обычно впереди и расчищавшие им путь саперы. В данном отношении Будапештская операция подарила советским войскам бесценный опыт действий в условиях локальных конфликтов, где основную роль играют небольшие самостоятельные мобильные подразделения.
На длительность боев за Будапешт повлияла и сложная обстановка на внешнем кольце фронта. Немцы трижды активно пытались деблокировать будапештскую группировку. Венгерский выступ был самой продвинутой на запад частью советско-германского фронта. Вывод из строя Венгрии и ее возможный переход на сторону стран антигитлеровской коалиции (по примеру Румынии и Болгарии) разрушал все южное крыло советско-германского фронта.
Зажатая между Балканами и Карпатами Среднедунайская низменность представляла удобный коридор для проникновения в Центральную Европу. Отсюда через Венгерскую равнину советские войска могли проникнуть в Германию с «черного хода» — наступать на Вену и нанести с юга удар на Берлин, грозя гигантским фланговым охватом и выходом в тыл немецким армиям в Польше и Чехословакии.
Кстати, схожий сценарий уже имел место в Первую мировую войну, когда развал австро-венгерского фронта на Балканах осенью 1918 года открыл союзникам свободный путь в Германию с юга, что делало бессмысленным ее сопротивление на западе. Кроме того, в западной части Венгрии имелись одни из последних контролируемых немцами нефтяных месторождений, стратегически важных для вооруженных сил Германии. Поэтому активность вермахта на будапештском участке и переброска сюда подкреплений были не случайны. Таким образом, Венгрия стала своеобразным заложником политики Третьего рейха, преследовавшим в данном регионе свои оборонительные интересы.
Самое мощное было третье наступление с целью деблокады Будапешта. Оно началось 18 января 1945 года, когда 4-й немецкий танковый корпус СС тараном из нескольких сотен танков сумел рассечь оборону 3-го Украинского фронта и выйти к Дунаю. Расстояние между атакующей и окруженной группировками сократилось до 20 км. Это немецкое наступление отличалось высокой концентрацией техники (до 70 танков на 1 км).
Положение 3-го Украинского фронта стало критическим. Возникла возможность отхода советских войск за Дунай. Но прорваться к Будапешту немцам все же не удалось. В последний момент советское командование ввело в бой свежие резервы (30-й стрелковый и 23-й танковый корпуса). В жестоких встречных боях они остановили немцев. К 7 февраля 4-й танковый корпус СС отошел на исходные позиции.
Провал этого наступления решил судьбу окруженной группировки.
13 февраля она капитулировала. В плен сдалось свыше 138 тыс. солдат и офицеров. На этом Будапештская операция завершилась. Из взятых Красной Армией европейских столиц Будапешт занял первое место по длительности уличных боев. Здесь была окружена и уничтожена последняя крупная немецкая группировка вне пределов Германии.