28 октября маршал Р. Я. Малиновский получил директиву Ставки ВГК взять Будапешт стремительным ударом. Начав наступление на следующий день, войска 2-го Украинского фронта вышли на южные подступы к венгерской столице. 11 ноября, перегруппировав силы, 2-й Украинский фронт атаковал город с востока, но неудачно. 5 декабря была сделана третья попытка взять Будапешт двусторонним охватом. К борьбе за город подключились войска 3-го Украинского фронта. К 9 декабря часть сил 3-го Украинского фронта, форсировав Дунай, вышла к югу от оз. Балатон, заняв рубеж между озёрами Веленце и Балатон. К 10 декабря 46-я армия, 2-й и 4-й гвардейский механизированные корпуса 2-го Украинского фронта, заняв междуречье Тисы и Дуная, отрезали будапештской группировке пути отхода на север и овладели важным плацдармом к югу от Будапешта. На этих рубежах советские войска встретили упорное сопротивление противника и остановились. Однако и положение немецко-венгерских войск, потерявших 32 тыс. солдат и офицеров, 95 танков, 740 орудий и миномётов, 56 самолётов, вынужденных разбрасывать свои резервы на отражение ударов наших войск, последовательно наносимых на различных направлениях, становилось всё более тяжёлым.
20 декабря, после 10-суточной оперативной паузы, советские войска возобновили наступление на венгерскую столицу, нанося главный удар в тыл будапештской группировке немцев. Часть вражеских войск на линии «Маргарита» угодила в окружение и была разгромлена в лесах к северо-западу от Будапешта. Было уничтожено 9 тыс. немецких и венгерских солдат и офицеров, 72 танка, 87 орудий, захвачено 6 тыс. пленных и 78 танков и САУ. 26 декабря 1944 г. армии двух фронтов соединились в 30 км северо-западнее города. 188-тысячная немецко-венгерская группировка в Будапеште (12 дивизий, 3 бригады, 30 отдельных частей) была окружена. Одновременно армии 2-го и 3-го Украинских фронтов продолжали наступление на запад, создавая внешнее кольцо окружения в 40–60 км от Будапешта.
22 декабря 1944 г. в Дебрецене открыло свои заседания Временное Национальное Собрание (парламент) Венгрии, образовавшее антифашистское Временное правительство Венгрии. 28 декабря новое венгерское правительство объявило войну Германии.
Для того чтобы избежать лишних жертв среди гражданского населения и не разрушить город, советское командование направило 29 декабря окружённому гарнизону Будапешта ультиматум с требованием капитуляции. Нарушив международное право, немецкие и венгерские фашисты расстреляли советских парламентёров капитанов М. Штейнмеца и И. А. Остапенко, не оставив советскому командованию иного выхода, кроме взятия Будапешта штурмом. Четыре советских стрелковых корпуса, бригада морской пехоты Дунайской военной флотилии и румынский армейский корпус, сведённые в Будапештскую группу войск 3-го Украинского фронта, приступили к планомерной зачистке окружённого и блокированного мегаполиса.
Ликвидация Будапештского «котла» сильно затянулась. В январе 1945 г. немецкое командование, сосредоточив в районе Будапешта половину всех танковых и моторизованных дивизий Восточного фронта, имевших на вооружении 600 танков и САУ и более 1200 орудий и миномётов, предприняло три отчаянные попытки деблокады окружённых войск и восстановления линии обороны по Дунаю. Сочетая упорную оборону с гибким манёвром, армии маршала Ф. И. Толбухина не только остановили немцев, но и отбросили их ударную группировку в исходное положение. Потери немецко-венгерских войск в этих боях составили более 211 тыс. солдат и офицеров (в том числе свыше 71 тыс. пленными), 700 танков и САУ (в том числе 185 захвачено), 785 бронемашин и бронетранспортёров, 1697 орудий и миномётов (в том числе 697 захвачено), 2429 автомашин (в том числе 1019 захвачено), 560 самолётов (280 сбито в воздушных боях, 158 уничтожено наземными средствами противовоздушной обороны (ПВО) и на аэродромах, 122 захвачено на посадочных площадках и при вынужденной посадке на занятой советскими войсками территории).
В 10 часов утра 13 февраля 1945 г. советские войска завершили ликвидацию окружённых в Будапеште немецко-венгерских войск, полностью заняв столицу Венгрии и принудив остатки её гарнизона, блокированные в районе Королевского замка, к безоговорочной капитуляции. В плен сдались 110 тыс. немецких и венгерских солдат, офицеров и генералов во главе с начальником будапештского гарнизона генерал-полковником Пфеффер-Вильденбрухом. Кроме того, 50 тыс. солдат и офицеров противника было убито, а 28 тыс. взято в плен до капитуляции. В городе были уничтожены и захвачены 291 танк и САУ, 222 бронемашины и бронетранспортёра, 1419 орудий и миномётов, захвачено 784 пулемёта, 20 140 винтовок, 2700 автомашин, 96 паровозов, 8 тыс. железнодорожных вагонов. Лишь 735 солдат и офицеров Будапештского гарнизона, в числе которых было 170 эсэсовцев, сумели просочиться через расположение советских войск и выйти к своим.