Проанализировав полученные разведывательные данные, командующий войсками 2-го Украинского фронта по согласованию с маршалом С.К. Тимошенко и Ставкой ВГК перенес сроки перехода в наступление.
По указанию Ставки (директива от 12 декабря 1944 года) войска 2-го и 3-го Украинских фронтов должны были нанести фронтальные удары по обороне противника на двух участках — севернее и юго-западнее Будапешта, развить прорыв танковыми соединениями навстречу друг другу и, применяя оперативный охват и обход, окружить будапештскую группировку противника. Одновременно они должны были нанести удары навстречу друг другу смежными объединениями и овладеть Будапештом. Наступление планировалось начать 19–20 декабря.
Таким образом, разгром будапештской группировки противника предполагалось осуществить путем ее окружения и последующего уничтожения силами двух фронтов. Командующий 2-м Украинским фронтом должен был ударной группой фронта в составе двух танковых армий и конно-механизированной группы генерала Плиева нанести удар из района Шахы с задачей выйти на северный берег Дуная и не допустить отхода вражеской группировки на северо-запад. 3-й Украинский фронт должен был силами двух общевойсковых армий, двух механизированных, одного танкового и одного кавалерийского корпусов нанести удар из района озера Велице на север, выйти на южный берег Дуная и отрезать пути отхода противника на запад.
Наступление, начавшееся 20 декабря, развивалось успешно. В полосе 2-го Украинского фронта 6-я танковая армия, прорвав самостоятельно оборону противника, начала стремительно продвигаться в северо-западном направлении.
Но и противник на успех советских войск реагировал довольно быстро. 21 декабря он нанес контрудар танками и пехотой в общем направлении на Шахи. В ударе, продолжавшемся также 22 и 23 декабря, участвовали части трех танковых дивизий (порядка 125 танков). Одновременно с этим контрударом фашисты также перешли в наступление на второстепенных направлениях. Прорвав фронт правофланговых соединений 7-й гвардейской армии, группировка противника к исходу 22 декабря вышла танковыми частями в район, откуда за два дня до этого началось наступление 6-й гвардейской танковой армии.
Но, нанося контрудар, противник подставил под удар свой левый фланг. Этим воспользовался командующий 2-м Украинским фронтом. 21 декабря он приказал командующему 6-й гвардейской танковой армией, прикрывшись частью сил с севера, главными силами нанести удар на юг, вдоль восточного берега реки Грон, с тем чтобы во взаимодействии с 7-й гвардейской армией окружить и уничтожить группировку противника в междуречье Ипель и Грон.
22 декабря танковая армия вышла в тыл сакалошской ударной группировки противника. Ее крутой поворот на юг придал очень острый характер борьбе, развернувшейся в междуречье. Советские танкисты, уничтожая живую силу и боевую технику противника, упорно продвигались в указанном направлении и 26 декабря подошли к устью реки Грон. В этот же день с юга в этот район вышли подвижные войска 3-го Украинского фронта. Произошло соединение войск обоих фронтов на линии внешнего фронта окружения будапештской группировки врага.
27 декабря завершилось окружение частей противника, действовавших в междуречье Грон и Ипель. В последующие три дня эта группировка, состоявшая из четырех полков пехоты и насчитывавшая до 70 танков, была полностью уничтожена.
В результате основной операции, когда к исходу 26 декабря войска 2-го и 3-го Украинских фронтов соединились у Эстергома (35 км северо-западнее Будапешта), было завершено окружение 188-тысячной группировки врага (около 10 дивизий и ряд частей родов войск). Невыполненной оставалась лишь задача овладения западной частью венгерской столицы, которую противник превратил в мощный укрепленный район.
А. Гитлер, будучи недовольным действиями генералов И. Фриснера и К. Фретера, 24 декабря командующим группой армий «Юг» назначил генерала О. Велера, а командующим 6-й армией — генерала танковых войск М. Балка. При этом происходило постоянное усиление группировки войск группы армий «Юг». Если к началу Дебреценской операции войскам 2-го и 3-го Украинских фронтов противостояли 4 танковые и 3 моторизованные дивизии, то к концу 1944 года против них действовало уже 13 танковых и 2 моторизованные дивизии.
28 декабря новый командующий группой армий «Юг» в оперативной директиве, указав, что надо ожидать дальнейшего наступления советских войск по обе стороны Дуная на запад, а также против 8-й армии, определил дальнейшие задачи своих объединений. 2-я танковая армия должна была создать глубокую оборону «от линии переднего края до позиции „Маргариты“» и «воспрепятствовать вражескому прорыву в направлении нефтяного района». Армейская группа «Балк» должна была до прибытия подкреплений воспрепятствовать прорыву советских войск южнее и севернее Дуная. Гарнизону Будапешта предлагалось «держаться до момента освобождения от осады».