Советское правительство помогло венгерским антифашистам устроить в освобожденном городе Дебрецене Временное национальное собрание Венгрии, которое заседало 21–22 декабря 1944 г. и образовало Временное национальное правительство во главе с генерал-полковником Белой Миклошем.
Первым актом нового правительства было решение о разрыве с фашистской Германией и объявлении ей войны. Затем последовало обращение к правительствам союзных государств, с которыми Венгрия находилась в состоянии войны, относительно перемирия.
Между венгерским и Советским правительствами было достигнуто соглашение о формировании из перебежчиков и военнопленных венгров новой венгерской армии. Однако по вине обеих сторон сформировали только одну венгерскую дивизию, которая попала на фронт уже после окончания боевых действий.
29 октября 1944 г. войска 2-го Украинского фронта под командованием маршала Р. Я. Малиновского начали наступление на Будапешт на фронте от железнодорожной станции Чоп на севере до дунайского городка Байя. Южнее вел наступление 3-й Украинский фронт, которым командовал маршал Ф. И. Толбухин.
В составе 2-го Украинского фронта находились 40, 27, 53, 7-я гвардейские армии, 46-я армия, 6-я гвардейская танковая армия, 1-я и 4-я румынские армии, конно-механизированная группа генерал-лейтенанта И. А. Плиева, 2-й и 4-й гвардейские мотострелковые корпуса. Всего около 712 тысяч человек.
На стыке 2-го и 3-го Украинских фронтов в районе города Байя действовали 1-я Керченская бригада речных кораблей и 83-я бригада речной пехоты Дунайской флотилии.
Район Будапешта защищали германские 8-я и 6-я полевые армии, 2-я танковая армия и 3-я венгерская армия. Командовал обороной Будапешта генерал-полковник Г. Фриснер. По советским данным, у германо-венгерской группировки имелось 29 дивизий и 5 бригад.
В ходе наступления войска 2-го Украинского фронта вышли к Дунаю севернее и северо-западнее Будапешта, отрезав противнику отход на север. На левом фланге фронта 46-я армия форсировала Дунай и устремилась вперед с целью обхода Будапешта с юго-запада. Однако вскоре 46-я армия была вынуждена перейти к обороне и по приказу Ставки перешла в состав 3-го Украинского фронта.
После этого Ставка потребовала от 2-го Украинского фронта нанести удар из района Шаги, а от 3-го Украинского фронта – из района озера Веленце повести встречное наступление на город Эстергом и окружить Будапешт.
26 декабря войска 2-го Украинского фронта окружили Будапешт, а войска 3-го Украинского фронта заняли оборону на внешнем обводе окружения.
К 1 января 1945 г. в восточной части венгерской столицы – Пеште – действовали 7-я гвардейская армия 2-го Украинского фронта и 7-й румынский корпус. Остальные войска фронта заняли оборону на левом берегу реки Грон от ее устья и далее на север до Турина. 6-я гвардейская танковая армия находилась в резерве.
Основные силы 3-го Украинского фронта занимали позиции на внешнем фронте окружения. 4-я гвардейская армия и 7-й механизированный корпус находились на правом берегу Дуная западнее Эстергома и далее на юг до озера Балатон. 57-я армия заняла оборону южнее Балатона до реки Дравы у города Барча.
46-я армия и 2-й гвардейский мехкорпус вели бои с противником, защищавшим западную часть города – Буду. В резерве 3-го Украинского фронта состояла 18-я танковая армия.
В Будапеште советскими войсками был окружен 9-й горный корпус СС под командованием генерал-полковника Пфеффер Вильденбруха. В состав корпуса входили или ему были оперативно подчинены: 8-я кавалерийская дивизия СС (частично была сформирована из этнических немцев, проживавших на территории СССР), 22-я добровольческая кавалерийская дивизия СС «Мария-Терезия» (большая часть личного состава – этнические венгры), 13-я танковая дивизия, танковая дивизия «Feldnermhalle» (без 93-го панцгренадерского полка).
После окружения Будапешта командованию 9-го корпуса был оперативно подчинен 1-й армейский венгерский корпус под командованием генерала Иштвана Хинди в составе 10-й и 12-й пехотных дивизий, частей 1-й танковой и 1-й кавалерийской дивизий. Всего в Будапеште оказалось 25 тысяч германских и 45 тысяч венгерских солдат и офицеров.
Германские кавалерийские дивизии СС имели в своем составе по одному танкоистребительному батальону. Так, в 8-й кавдивизии состояло 28 7,5-см САУ «Хетцер», а в 22-й – 20 «Хетцеров». Также в каждой из этих кавдивизий в составе танкоистребительных батальонов вместо 3-й батареи имелась танковая рота с танками итальянского производства М 15/42. Это были легкие танки весом 15 т, вооруженные одной 47/40-мм пушкой. Толщина брони их составляла 14–45 мм, скорость 40 км/ч. Короче, это был улучшенный Т-60.
Обе германские танковые дивизии имели по 36 танков Т-V «Пантера» и 11 противотанковых САУ Т-IV/700 с 7,5/70-см пушкой от «Пантеры» и по четыре 37-мм ЗСУ.
В танковой дивизии «Фельдхенхаям» имелось 12 15-см САУ «Хуммель», а в 13-й танковой дивизии – около двух десятков 15-см САУ s.IG 33 и 10,5-см «Веспо».
В 1-й венгерской танковой дивизии должны были состоять по штату 61 танк «Туран I» и 62 танка «Туран II», а также 39 40-мм ЗСУ «Нимрад». Однако к декабрю 1944 г. из них в строю находилась в лучшем случае половина.
29 декабря 1944 г. в 4 часа утра противник взорвал в черте города Будапешт первый железнодорожный мост через Дунай. В результате ожесточенных боев германо-венгерские войска оставили несколько кварталов в западной части города.
1 января 1945 г. войска 2-го Украинского фронта своим левым крылом занимали рубеж по левому берегу реки Грон, упираясь в Дунай у населенного пункта Каменица и дальше по левому берегу Дуная до Будапешта. Части 7-й гвардейской армии овладели пригородом Будапешта – Матьашфелд.
Немцы и венгры организовали в Будапеште правильную оборону. Только в Пеште советские топографы насчитали около 5 тысяч кварталов, так немцы именовали участки обороны. По данным разведки, основу обороны левобережной части Будапешта составляли узлы сопротивления из нескольких кварталов и опорные пункты в них из одного и более зданий. Полукольцевые оборонительные линии упирались своими флангами в Дунай. Отсечные позиции проходили по радиальным улицам.
Немецкое командование предприняло попытку деблокировать окруженную в Будапеште группировку и 2–18 января нанесло последовательно три контрудара по войскам 3-го Украинского фронта.
К 1 января 1945 г. по приказу командующего фронтом основные силы 4-й гвардейской армии перешли к обороне на фронте около 160 км (до юго-восточного берега озера Балатон), за исключением части сил в центре и на левом фланге, которые должны были продолжать наступление, чтобы овладеть населенными пунктами Мор, Варпалота, Фюзфо.
В состав 4-й гвардейской армии входили пять стрелковых и один механизированный корпус. Все стрелковые корпуса располагались в одном эшелоне и имели следующую ширину полос обороны: 31-й гвардейский стрелковый корпус (4-я, 80-я и 34-я гв. сд) – 48 км; 68-й стрелковый корпус (223-я, 52-я и 93-я сд) – 24 км; 20-й гвардейский стрелковый корпус (7-я и 5-я гв. вдд и 40-я гв. сд) – 24 км; 135-й стрелковый корпус (84-я гв. и 252 сд) – 16 км; 21-й гвардейский стрелковый корпус (69-я и 62-я гв. сд и 1 гв. УР) – 20 км и около 30 км южного берега озера Балатон, где оборонялся небольшой сводный отряд. Боевые порядки корпусов были построены также в один эшелон.