Перед началом сражения за Будапешт германо-венгерские войска группы армий «Юг» генерала Ганса Фриснера насчитывали 190 тыс. человек. Противостоявшие им войска 2-го Украинского фронта маршала Малиновского и 46-я армия 3-го Украинского фронта маршала Толбухина имели 720 тыс. человек. Советские войска превосходили противника по пехоте в 3,7 раза, по танкам – вдвое, по артиллерии – в 4,5 раза, по самолетам – в 2,5 раза. Войска 2-го Украинского фронта 30 октября перешли в наступление с целью выхода к Дунаю и захвата Будапешта. Оборона венгерских войск оказалась прорвана еще при проведении разведки боем. 2 ноября советские войска вышли с юга на ближние подступы к Будапешту, но ворваться в город с ходу не смогли. Только к 26 ноября советские войска вышли к внешнему оборонительному обводу Будапешта. 5 декабря войска 2-го Украинского фронта вышли к Дунаю севернее и северо-западнее Будапешта, отрезав будапештской группировке пути отхода на север. Тем временем войска 3-го Украинского фронта силами 57-й, 46-й и 4-й гвардейской армий и 1-й болгарской армии форсировали Дунай и вышли на позиции северо-восточнее озера Балатон. 20 декабря войска двух фронтов прорвали оборону противника севернее и юго-западнее Будапешта. 24 декабря Будапешт был полностью окружен. 29 декабря советское командование направило окруженному гарнизону ультиматум о капитуляции, который был отклонен.