К началу марта в составе 3-го Украинского фронта (4-я гвардейская, 27, 26, 57-я, 1-я болгарская, 17-я воздушная армии, 18-й и 23-й танковые, 1-й гвардейский механизированный, 5-й гвардейский кавалерийский корпуса — 37 стрелковых, 3 кавалерийские, 6 болгарских пехотных дивизий, 1 укрепрайон, 1 кавалерийский, 1 механизированный, 2 танковых корпуса, 1 механизированная и 1 самоходно-артиллерийская бригада) насчитывалось 566 тысяч солдат и офицеров, 6889 орудий и минометов, 399 танков и самоходных установок, 965 самолетов.
Отсюда наши историки сделали вывод, что «общее соотношение сил в людях, артиллерии и самолетах было почти равным, но по танкам и самоходно-артиллерийским установкам противник превосходил более чем вдвое». Утверждение, что 431 тысяча примерно равна 566 тысячам, выглядит спорным. Югославская армия, имевшая восемь дивизий, при этом вообще не учитывается. Вся немецкая бронетехника считается исправной, хотя на самом деле боеготовых машин, с учетом ЗСУ, насчитывалось 580 единиц, в том числе 35 «тигров». Что касается советской стороны, то только исправная техника и принимается во внимание. Учитывая, что немецкие летчики и танкисты испытывали ставшие хроническими проблемы с горючим и боеприпасами, русские сидели в обороне, а элемент внезапности немцами был утрачен, все выглядит не так уж грустно.
Поскольку «вскрыть замысел врага» для советской разведки было непосильной задачей (хоть генерал Штеменко задним числом и утверждает обратное), в штабе Толбухина путем проверки местности на проходимость и танкодоступность вычислили два наиболее вероятных направления немецкого наступления — севернее Секешфехервара на Будапешт и между озерами Веленце и Балатон на Дунапентеле. К тому же здесь противник находился от Дуная в 25–30 километрах. Первый вариант казался предпочтительнее.
В соответствии с принятой «доктриной» основные усилия войск фронта были сосредоточены в полосах, прикрывавших эти направления, 4-й гвардейской армии (20, 21, 31-й гвардейские стрелковые корпуса, 1-й гвардейский укрепрайон) генерал-лейтенанта Н. Д. Захватаева и 26-й армии (30, 104, 135-й стрелковые корпуса) генерал-лейтенанта Н. А. Гагена. Во втором эшелоне находилась 27-я армия (35-й гвардейский, 33-й, 37-й стрелковые корпуса) генерал-полковника С. Г. Трофименко. 57-я армия (6-й гвардейский, 64-й стрелковые корпуса) и 1-я болгарская армия (3-й, 4-й пехотные корпуса) удерживали 200-километровый рубеж: озеро Балатон, Бабоча и далее по левому берегу реки Дратва. К началу марта была подготовлена достаточно развитая в инженерном отношении и эшелонированная на глубину 30–50 километров оборона. Тактическая зона состояла из двух полос глубиной 10–15 километров. Были созданы ротные противотанковые опорные пункты, имевшие 3–5 орудий и 4–6 противотанковых ружей, батальонные противотанковые узлы, противотанковые районы и подвижные противотанковые резервы, «посеяно» около 30 тысяч противотанковых мин, сформировано 68 подвижных отрядов заграждения. В 83-километровой полосе от Ганта до озера Балатон было сосредочено 4400 орудий и минометов, 339 реактивных установок. Общая оперативная плотность артилллерии на наиболее важных направлениях составляла 60–70 орудий и минометов, противотанковых стволов — 20–25, плотность минных заграждений на отдельных участках — 2700 противотанковых и 2500 противопехотных мин на один километр. Советские войска заняли первую, вторую и тыловую полосы. Наибольшая плотность обороны была создана на рубеже Гант — озеро Веленце, то есть в полосе 4-й гвардейской армии, где на дивизию в среднем приходилось 3,3 километра, южнее оперативная плотность соединений была ниже — 4,5–6,5 километра на дивизию.
В резерве командующего фронтом находились 18-й и 23-й танковые, 1-й гвардейский механизированный, 5-й гвардейский кавалерийский, 133-й стрелковый корпуса и шесть артиллерийских бригад. Правда, в ходе сражения за Будапешт бронетанковые войска понесли значительные потери, не успели полностью восстановиться и все вместе насчитывали в строю 189 средних танков и 210 самоходно-артиллерийских установок.
17-я воздушная армия, которой командовал генерал-полковник В. А. Судец, имела задачу вести разведку, наносить удары по вражеским войскам, прикрывать соединения фронта с воздуха. Дунайская военная флотилия осуществляла перевозку грузов через Дунай в интересах двух фронтов и осуществляла траление реки.
Сражение началось в ночь на 6 марта на южном участке фронта, где противник тремя пехотными дивизиями нанес два удара: первый — из района Дони-Михоляц по войскам 1-й болгарской, второй — из района Валпово по частям 3-й югославской армии. Внезапной атакой, без проведения артиллерийской подготовки, немцы форсировали Дратву и захватили на ее северном берегу два плацдарма до 8 киллометров по фронту и 5 километров в глубину каждый. Возникла угроза выхода противника к переправам на Дунае и в тыл 57-й армии. Поэтому Толбухин приказал выдвинуть из своего резерва 133-й стрелковый корпус генерал-майора П. А. Артющенко и, организовав контрудар во взаимодействии с болгарскими и югославскими войсками, восстановить положение. Контрудар успеха не имел, но дальнейшее продвижение немцев на этом участке было остановлено.
Второй удар последовал в 7 часов утра силами 2-й танковой армии вдоль железной дороги на Капошвар, Домбовар. Введя в бой около 70 танков и САУ, они на узком участке вклинились в оборону 57-й армии на глубину до 5 километров, но были остановлены контратаками вторых эшелонов дивизий, сильным артиллерийским огнем и налетами 189-й штурмовой авиадивизии. При этом в составе советского 64-го стрелкового корпуса «проходила стажировку» болгарская 12-я пехотная дивизия.
Наконец, в 8.45 на участке между озерами Веленце и Балатон перешли в наступление главные силы — 6-я танковая армия СС (1-й кавалерийский, 403-й народно-артиллерийский, 1-й и 2-й танковые корпуса СС) и 3-й танковый корпус 6-й армии.
Армия Дитриха спускалась на юго-восток вдоль широкого канала Шарвиз, разделявшего советский плацдарм на две части. Из района Польгарди по западному берегу наступали 1-й кавалерийский корпус (3-я, 4-я кавалерийские дивизии, 25-я венгерская пехотная) и 1-й танковый корпус СС (1-я танковая дивизия СС «Лейбштандарт «Адольф Гитлер», 12-я танковая дивизия СС «Гитлерюгенд», 501-й тяжелый танковый батальон СС, 560-й батальон истребителей танков). Этой ударной группировке предстояло соединиться с наступавшими с юга силами группы армий «Е».
2-й танковый корпус СС (2-я танковая дивизия СС «Рейх», 9-я танковая дивизия СС «Хоэнштауфен», 44-я пехотная дивизия) должен был продвигаться через Аба по восточному берегу канала. Его задачей был выход к Дунаю у Дунапентеле и Дунафельвара.
В резерве армии оставалась 6-я танковая дивизия.
Задачей 3-го танкового корпуса (1, 3,23-я танковые, 356-я пехотная дивизии, батальон 24-го танкового полка, 509-й тяжелый танковый батальон, 219-й батальон штурмовых танков) было пробиться на восток и, обеспечивая фланговое прикрытие главной ударной группировки, организовать отсечную позицию фронтом на север между озером Веленце и Дунаем.
В каждом из танковых корпусов насчитывалось 120–150 боеготовых танков, истребителей и штурмовых орудий. В каждой эсэсовской дивизии наличествовало 17–19 тысяч личного состава.