К операции были привлечены войска 1-го Украинского (командующий Маршал Советского Союза И. С. Конев), 4-го Украинского (командующий генерал армии А. И. Ерёменко) и 2-го Украинского (командующий Маршал Советского Союза Р. Я. Малиновский) фронтов. В операции также участвовали 2-я армия Войска Польского (в составе 1-го Украинского фронта), 1-я и 4-я румынские армии (в составе 2-го Украинского фронта) и 1-й Чехословацкий армейский корпус (в составе 4-го Украинского фронта). Общая численность этих сил (171 дивизия, 15 подвижных корпусов, 23 бригады и 2 укрепрайона) составляла 2028,1 тыс. солдат и офицеров, 30 450 орудий и миномётов, 1900 танков и САУ, 3014 боевых самолётов.
В процессе подготовки Пражской операции 3-я и 4-я гвардейские танковые армии 1-го Украинского фронта за трое суток совершили 100-200-километровый марш из-под Берлина на исходный плацдарм в районе г. Дрезден. Остальные армии привели в порядок вооружение, технику, пополнили запасы горючего и боеприпасов. Все танки, САУ и автотранспорт выделенных для участия в операции войск были обеспечены горючим на всю операцию до конца – до самой Праги. Как с гордостью отмечал впоследствии маршал И. С. Конев, ни одна боевая машина из-за нехватки горючего не встала в пути.
Советским командованием были приняты меры стратегической дезинформации. В специальных беседах солдатам и офицерам 1-го Украинского фронта было сообщено, что главной целью готовящегося на середину – вторую половину мая наступления является захват Баварии и Западной Австрии, а операция на Пражском направлении носит вспомогательный характер. На танках, бронетранспортёрах и грузовиках стихийно появились надписи «На Мюнхен!»…
Утром 6 мая армии 1-го Украинского фронта начали на широком фронте наступление в общем направлении на Прагу. Неожиданное наступление советских войск сорвало планы фельдмаршала Шёрнера деблокировать Бреслау. В 18 часов 6 мая 1945 г. 40-тысячный гарнизон Бреслау сдался на милость 6-й армии 1-го Украинского фронта. Утром 7 мая в наступление в общем направлении на Прагу перешли армии 2-го и 4-го Украинского фронтов. Немцы оказали ожесточённое сопротивление на мощной укреплённой позиции в Рудных горах, однако к исходу дня 7 мая большинство опорных пунктов «Богемского вала» пало. Преследование и истребление отходящего и бегущего противника велись безостановочно днём и ночью. «Илы» и «пешки» осыпали колонны вражеских войск мириадами малокалиберных осколочных и противотанковых бомб, и поток этого убийственного для войск в колоннах оружия казался немецким солдатам и офицерам бесконечным.
На рассвете 8 мая 5-й гвардейский механизированный корпус генерал-майора И. П. Ермакова между Яромержем и Жатецом (северо-западнее Праги) с ходу вкатал в асфальт большую штабную колонну немцев и пошёл дальше. Как выяснилось после войны, танкисты Ермакова уничтожили пытавшийся уйти к американцам штаб группы армий «Центр». К исходу дня 8 мая войска 1-го Украинского фронта взяли Дрезден, Баутцен, Гёрлиц, Теплице, Билину и Мост; войска 2-го Украинского фронта освободили города Зноймо, Мирослав, Яромержице; 4-й Украинский фронт освободил Оломоуц и, продолжив наступление, соединился с частями 2-го Украинского фронта. Войска советских фронтов, завершив прорыв считавшихся неприступными укреплений «Богемского вала», вышли на оперативный простор. После того, как советские танкисты уничтожили штаб группы армий «Центр», фельдмаршал Шёрнер полностью потерял управление войсками, бежал в горы и прятался там, переодевшись в штатское платье.
В ночь на 9 мая 3-я и 4-я гвардейские танковые армии 1-го Украинского фронта совершили 80-километровый бросок и на рассвете ворвались в Прагу. Вслед за ними утром 9 мая в город вступили передовые части 3-й гвардейской и 13-й армий 1-го Украинского фронта, а также механизированные соединения 4-го и 2-го Украинских фронтов. При поддержке вооружённых дружин КПЧ и ЧНС советские войска к полудню 9 мая полностью очистили столицу Чехословакии от фашистов и их пособников. В ходе зачистки города в плен было захвачено более 4 тыс. немецких солдат и офицеров. В боях на окраинах Праги и на улицах города погибли 500 советских воинов.