Чтобы добиться перелома в ходе боевых действий, 20 марта перешли в наступление 27-я (генерал-полковник С.Г. Трофименко) и 26-я (генерал-лейтенант Н.А. Гаген) армии. Они, а также 4-я гвардейская армия получили задачу нанести одновременный удар в трех направлениях – на Берхиду, Польгарди и Лепшень. Для наращивания силы удара в их полосах были введены в сражение 1-й гвардейский механизированный (генерал-лейтенант И.Н. Руссиянов), 18-й (генерал-майор П.Д. Говоруненко) и 23-й (генерал-лейтенант А.О. Ахманов) танковые корпуса. Войска противника подверглись массированным ударам с воздуха. Их нанесли авиация 17-й (генерал-полковник авиации B. А. Судец) и 18-й (авиация дальнего действия; главный маршал авиации А.Е. Голованов) воздушных армий. По ряду объектов удары нанесла авиация союзников, взаимодействовавшая с советскими ВВС.
Противник продолжал ожесточенное сопротивление, стремясь любой ценой предотвратить окружение своих войск и вывести их из района между озерами Веленце и Балатон. Несмотря на это, наступление войск 3-го Украинского фронта развивалось быстрее, чем в первые дни операции. 22 марта войска 4-й гвардейской армии овладели городом Секешфехервар, а 9-я гвардейская и 6-я гвардейская танковая армии, сломив сопротивление противника на рубеже Баконский лес, начали преследовать его войска, отходившие на рубеж р. Раба. К исходу дня 22 марта основные силы 6-й танковой армии СС были почти окружены в районе севернее озера Балатон. Но уничтожить их советским войскам не удалось. Через узкий коридор в районе Фюзфо врагу 23 марта удалось прорваться на запад, хотя при этом он и понес большие потери.
46-я армия (генерал-лейтенант А.В. Петрушевский) 2-го Украинского фронта перешла в наступление 17 марта. Прорвав в тот же день оборону противника, ее войска начали развивать удар в северо-западном направлении. Введенный 19 марта в прорыв 2-й гвардейский механизированный корпус (генерал-лейтенант К.В. Свиридов) на следующий день вышел к Дунаю в районе Товарош, глубоко охватив с юго-запада эстергомскую группировку противника (свыше 17 тыс. человек).
Одновременно в том же районе был высажен десант из состава 83-й отдельной морской стрелковой бригады, входившей в Дунайскую военную флотилию (контр-адмирал Г.Н. Холостяков). Главные силы 46-й армии развернули наступление на Дьер, а часть сил была выделена для ликвидации окруженного противника. Наступление войск фронта южнее Дуная активно поддерживалось авиацией 5-й воздушной армии (генерал-полковник авиации С.К. Горюнов). Для развития успеха 46-й армии был передан из 3-го Украинского фронта 23-й танковый корпус.
Противник предпринимал настойчивые попытки деблокировать свою окруженную группировку (основные силы 8-го армейского корпуса 3-й венгерской армии). С 21 по 25 марта войска 46-й армии во взаимодействии с десантом Дунайской военной флотилии отразили 18 его сильных контратак, в некоторых из них участвовало до 130 танков и штурмовых орудий. Но все усилия врага оказались тщетными, 27 марта его эстергомская группировка была ликвидирована советскими войсками.
К этому времени войска правого крыла 3-го Украинского фронта и 46-й армии прорвали оборону противника между Дунаем и озером Балатон на всю ее глубину, преодолели горы Баконский лес и Вертешхельшег и, продвинувшись на глубину до 80 км, создали условия для развития наступления на Вену. С 26 марта войска обоих фронтов перешли к преследованию врага во всей полосе наступления. Воспользовавшись успешными действиями к югу от Дуная, 25 марта начали наступление на Братиславу и Брно войска 2-го Украинского фронта. 46-я армия 28 марта овладела городами Комаром и Дьер и полностью очистила правый берег Дуная до устья р. Раба. На этой реке, где проходил промежуточный оборонительный рубеж, противник предпринял попытку закрепиться, но войска правого крыла
3-го Украинского фронта с ходу форсировали реку, сломили его упорное сопротивление на левом берегу и продолжали стремительное продвижение на запад. 30 марта подвижные соединения фронта при мощной поддержке авиации с ходу прорвали пограничные укрепления врага на австро-венгерской границе южнее Шопрона и вступили в пределы Австрии.
Продвижение 26-й и 27-й армий в юго-западном направлении привело к угрозе охвата с севера 2-й немецкой танковой армии, которая с боями начала отходить из района южнее озера Балатон. Воспользовавшись этим, 29 марта перешли в наступление 57-я (генерал-полковник М.Н. Шарохин) и 1-я болгарская армии, действовавшие на левом крыле 3-го Украинского фронта. 2 апреля войска 57-й армии овладели центром нефтеносного района – городом Надьканижа.
1 апреля Ставка ВГК уточнила задачи фронтам. 3-му Украинскому фронту было приказано армиями правого крыла овладеть Веной и не позднее 12–15 апреля выйти на рубеж 50–60 км западнее ее, а армиями центра и левого крыла к 10–12 апреля выйти на рубеж рек Мур и Драва; 2-му Украинскому фронту – перебросить 46-ю армию с приданными ей танковым и механизированным корпусами с правого берега Дуная на левый, развернуть наступление на Штоккерау и отрезать пути отхода венской группировки противника на север.
4 апреля 1945 советские войска завершили освобождение Венгрии и развернули наступление на Вену. Ожесточенные бои за столицу Австрии начались уже на следующий день – 5 апреля. 6 апреля войска правого крыла 3-го Украинского фронта нанесли одновременные удары: с юго-востока – 4-я гвардейская армия с 1-м гвардейским механизированным корпусом; с юга и юго-запада – 6-я гвардейская танковая армия, 18-й танковый корпус и часть сил 9-й гвардейской армии. Остальные силы 9-й гвардейской армии обходили город через отроги Восточных Альп с запада. 46-я армия, 2-й гвардейский механизированный и 23-й танковый корпуса, переправленные кораблями
Дунайской военной флотилии в районе Братиславы на левый берег Дуная, наступали на Штоккерау, обходя Вену с севера. С воздуха наступающие на Вену войска поддерживала авиация 17-й и 5-й воздушных армий. Командование 3-го Украинского фронта обратилось к населению Вены с призывом оставаться на местах и помогать Красной Армии, не давать фашистам разрушать город.
Бои на подступах к Вене носили ожесточенный характер. Противник непрерывно контратаковал наши войска крупными силами пехоты и танков, но сдержать их мощный натиск все же не смог, 6 апреля советские войска начали штурм австрийской столицы с юга и востока. Одновременно 6-я гвардейская танковая армия и главные силы 9-й гвардейской армии обходили город с запада. Им пришлось преодолевать горно-лесистый массив Венского леса. Обойдя Вену, они 7 апреля вышли к Дунаю. Город был охвачен с трех сторон – с юга, востока и запада. Ведя упорные уличные бои, советские войска продвигались к центру города. За каждый квартал, а порой и за отдельное здание разгорались жестокие схватки. После того как армии 3-го Украинского фронта отрезали венской группировке врага пути отхода на запад, ей оставался лишь один путь отхода – на север. Но его должна была перерезать 46-я армия 2-го Украинского фронта. Поэтому немецко-фашистское командование сосредоточило свои основные усилия на том, чтобы любой ценой остановить ее наступление и не допустить полного окружения своей венской группировки. Наступление 46-й армии замедлилось.
В ходе штурма наиболее ожесточенная борьба развернулась за мосты через Дунай. В ночь на 11 апреля 4-я гвардейская армия начала форсирование Дунайского канала. Особенно успешно действовали соединения 20-го гвардейского стрелкового (генерал-майор Н.И. Бирюков) и 1-го гвардейского механизированного корпусов, наступавших в направлении Имперского моста. Чтобы помешать противнику его взорвать, на оба берега реки Дунайская военная флотилия высадила десант в составе стрелкового батальона 80-й гвардейской стрелковой дивизии (полковник В.И. Чижов). 13 апреля такая же задача была поставлена перед батальоном 7-й гвардейской воздушно-десантной дивизии (полковник Д.А. Дрычкин). Группа десантников во главе с капитаном Д.Ф. Борисовым проникла под мост и перерезала провода, предотвратив взрыв. Внезапной атакой гвардейцы при помощи десантников овладели мостом. Это были последние бои за столицу Австрии. К 14 часам 13 апреля советские войска полностью овладели Веной, а западнее города соединения 3-го Украинского фронта 15 апреля вышли на рубеж Санкт-Пельтен и южнее вплоть до реки Драва.