С 23 апреля начался штурм Берлина. На первый взгляд, Берлин представлял собой достаточно мощную крепость, особенно учитывая то, что баррикады на его улицах строились на промышленном уровне и достигали высоты и ширины 2,5 м. Большим подспорьем в обороне были так называемые башни ПВО. Здания готовились к обороне, минировались мосты через реку Шпрее и каналы. Повсюду строились ДОТы, ДЗОТы, оборудовались пулеметные гнезда. Город был разделен на 9 секторов обороны. Численность гарнизона каждого сектора по плану должна была составлять 25 тыс. человек. Однако в реальности их было не более 10–12 тыс. человек. В общей сложности гарнизон Берлина насчитывал не более 100 тыс. человек, сказался просчет командования армии «Висла», основное внимание уделившего «Одерскому щиту», а также блокирующие меры советских войск, не допустивших отхода в Берлин значительного количества немецких частей. Отход 56-го танкового корпуса незначительно усилил защитников Берлина, поскольку его численность сократилась до дивизии. На 88 тыс. гектаров города приходилось всего 140 тыс. обороняющихся. В отличие от Сталинграда и Будапешта, ни о каком занятии каждого дома не могло быть и речи, оборонялись только ключевые здания кварталов. К тому же гарнизон Берлина представлял собой крайне пестрое зрелище, в нем насчитывалось до 70 (!) видов войск. Значительную часть защитников Берлина составлял фольксштурм (народное ополчение), среди них было немало подростков из Гитлерюгенда. Гарнизон Берлина остро нуждался в оружии и боеприпасах. Вход в город 450 тысяч закаленных в боях советских бойцов не оставлял обороняющимся никаких шансов. Это обусловило сравнительно быстрый штурм Берлина – около 10 дней.
Однако эти десять дней, которые потрясли мир, были исполнены для солдат и офицеров 1-го Белорусского и 1-го Украинского фронта тяжелого кровавого труда. Значительные трудности, связанные с большими потерями, представляло форсирование водных преград – рек, озер и каналов, борьба с вражескими снайперами и фаустпатронниками, особенно в развалинах зданий. В то же время следует отметить недостаток пехоты в штурмующих отрядах, в силу как общих потерь, так и понесенных перед непосредственным штурмом Берлина. Был учтен опыт уличных боев, начиная со Сталинграда, особенно при штурме немецких «фестунгов» (крепостей) – Познани, Кенигсберга. В штурмующих отрядах образовывались специальные штурмующие группы, состоявшие из подгрупп блокирования (взвод мотопехоты, отделение саперов), подгруппы обеспечения (два взвода мотопехоты, взвод ПТР), двух 76 мм и одного 57 мм орудия. Группы двигались по одной улице (одна по правой, другая по левой стороне). В то время как подгруппа блокирования подрывала дома, блокировала огневые точки, подгруппа обеспечения поддерживала ее огнем. Часто штурмовым группам придавались танки и САУ, оказывавшие им огневую поддержку.
В либеральной прессе неоднократно подымался вопрос: «Стоило ли входить в Берлин с танками?» и сформировалось даже своеобразное клише: танковые армии, сожженные фаустпатронами на улицах Берлина. Однако у участников битвы за Берлин, в частности у командующего 3-й танковой армией П. С. Рыбалко – другое мнение:
Стоит отметить, что значение фаустпатронов сильно преувеличено: в обычных условиях потери советских танков от фаустпатронов были в 10 раз меньше, чем от действий немецкой артиллерии. То, что в боях за Берлин половина потерь советских танков пришлась на действие фаустпатронов, лишний раз доказывает огромный уровень потерь немцев в технике, прежде всего в противотанковой артиллерии и в танках. Зачастую штурмовые группы показывали чудеса мужества и профессионализма. Так, 28 апреля солдаты 28-го стрелкового корпуса захватили 2021 пленного, 5 танков, 1380 автомашин, освободили из концлагеря 5 тыс. пленных разных национальностей, потеряв лишь 11 убитых и 57 раненых. Солдаты 117-го батальона 39-й стрелковой дивизии взяли здание с гарнизоном из 720 гитлеровцев, уничтожив 70 фашистов и пленив 650. Советский солдат научился воевать не числом, а умением. Все это опровергает мифы о том, что мы взяли Берлин, завалив трупами противника.