Советское наступление на Берлин началось 16 апреля. Красная армия имела над противником пятикратное превосходство в людях и еще более значительное – в танках и самолетах. Наиболее тяжелые бои развернулись на Зееловских высотах, где наступал 1-й Белорусский фронт. Немцы узнали о времени начала атаки и отвели свои войска на обратные склоны высот, так что они не понесли больших потерь при артподготовке. Также бесполезны оказались и примененные по инициативе Жукова мощные прожектора. Они должны были, по замыслу, ослепить противника, но не могли пробить пелену пыли, поднявшуюся у германских окопов от снарядов и бомб. Скорее, от прожекторов был вред для самой Красной армии, поскольку их свет освещал немцам боевые порядки наступающих. Прорвать оборону на Зееловских высотах удалось лишь на третий день наступления. Потери советских войск здесь были столь огромны, что от гор трупов, выросших перед окопами, некоторые немецкие солдаты буквально сходили с ума. Сохранился рассказ (возможно легенда) одного советского командира, положившего весь батальон в атаке на Зееловские высоты. Когда он пробовал возразить, что немецкая система огня не подавлена и надо еще поработать артиллерии, ему пригрозили расстрелом, если немедленно не поведет бойцов в атаку. Когда остатки батальона уже собирались отступать, дзот внезапно замолчал. Когда командир с немногими уцелевшими солдатами (офицеры были выбиты почти все) ворвался в дзот и пристрелил второго номера, то выяснилось, что первый номер просто сошел с ума, увидев перед собой такую гору трупов. Иначе Красная армия воевать не могла.
Более успешно действовал 1-й Украинский фронт маршала Конева, уже в первый день наступления взломавший немецкую оборону по реке Нейсе. В дальнейшем с санкции Сталина началась гонка танковых армий двух фронтов к Берлину. В результате германскую столицу брали войска как Жукова, так и Конева. Берлинский гарнизон, состоявший из 56-го танкового корпуса, был окружен. В другом «котле» к югу от Берлина, в районе Франкфурта-на-Одере, оказались основные силы 9-й немецкой армии. Войска 2-го Белорусского фронта под командованием маршала Рокоссовского к северу от Берлина, форсировав нижнее течение Одера, теснили противника к Эльбе. В Берлинской операции каждый советский фронт практически имел против себя только по одной неприятельской армии.
15 апреля на Эльбу с запада вышли американские войска. Им пришлось 10 дней ждать встречи с Красной армией. Эйзенхауэр запретил им наступать на Берлин, чтобы не углубляться слишком глубоко в будущую советскую оккупационную зону. Он предполагал сосредоточиться на очистке Рура и захвате южных и юго-восточных районов Германии.
Между тем союзники значительно преувеличивали возможности противника по прикрытию Берлина с Запада. Войска на Одере уже были связаны начавшимся наступлением Жукова и Конева и не могли быть быстро переброшены на Запад. На Эльбе была лишь недавно сформированная 12-я немецкая армия генерала Венка численностью немногим более 100 тысяч человек. Она при всем желании не могла ни остановить американцев, ни нанести им стотысячные потери (о возможности таких потерь говорил командующий американской группой армий генерал Омар Брэдли). Предпринятое Венком 16 апреля наступление с целью деблокады окруженной в Гарце 11-й армии закончилось катастрофой. Две дивизии 12-й армии столкнулись со вторым эшелоном 9-й американской армии и к 21 апреля были уничтожены в районе к северу от Брауншвейга.
По приказу Гитлера оставшиеся 5 дивизий армии Венка 22 апреля, после того как они ликвидировали неприятельский плацдарм за Эльбой к югу от Магдебурга и локализовали другой в районе Барби, были повернуты на Восток и двинулись на выручку Берлина. Между тем 25 апреля войска Конева соединились с частями 1-й американской армии на Эльбе в районе Торгау, окончательно разрезав немецкий фронт на две изолированные группировки – северную и южную. Войска Венка наступали на Ютеборг для соединения с 9-й германской армией, чтобы потом вместе ударить на Берлин.
1 мая примерно 30 тысяч солдат и офицеров под руководством командующего 9-й армией генерала Буссе осуществили прорыв и в районе Белица встретились с частями 12-й армии. Это произошло после самоубийства Гитлера, застрелившегося в бункере Рейхсканцелярии 30 апреля, и накануне капитуляции берлинского гарнизона 2 мая. 29 апреля капитулировали немецкие войска в Италии, причем условия капитуляции также вступили в силу 2 мая.
Советские войска от Берлина были переброшены в Чехословакию и 9 мая освободили город, где началось антигерманское восстание. Ранее, 7 мая 1945 года, в Ставке Эйзенхауэра в Реймсе начальник штаба оперативного руководства генерал Иодль от имени правительства преемника Гитлера гросс-адмирала Деница вынужден был подписать акт о безоговорочной капитуляции германских вооруженных сил на всех фронтах.