Для штурма Белгорода была сосредоточена мощная группировка войск СтепФ: 89-я гвардейская, 305-я и 375-я стрелковые дивизии 48-го ск под командованием генерала Зиновия Рогозного, а также 93-я и 94-я гвардейские стрелковые дивизии 35-го гв. ск под командованием генерала Сергея Горячева, усиленные 26-й зенитной артдивизией, 10-й и 31-й иптабр и 96-й тбр, наступали на город с севера и северо-востока; 111-я сд 49-го гв. ск 7-й гв. А, которым командовал генерал Гурий Терентьев, содействовала им наступлением на город с востока; с воздуха действия наземных войск поддерживали соединения 1-го бомбардировочного, 4-го истребительного и 1-го штурмового авиакорпусов 5-й ВА[745].
Действуя по плану, в 6 часов утра 5 августа войска 69-й А атаковали промежуточный рубеж обороны, занятый частями 198-й немецкой пд на подступах к Белгороду, который опирался на опорные пункты и узлы сопротивления в районах поселков Оскочное, Ячнев Колодезь, Гриневка, Покровка. В центре участка прорыва действовала 375-я сд полковника Петра Говоруненко, на правом фланге – 305-я сд полковника Александра Васильева, а на левом – 89-я гв. сд полковника Михаила Серюгина.
По свидетельству начальника политического отдела 375-й сд полковника Сергея Айнутдинова[746], узел сопротивления врага Ячнев Колодезь, прикрывавший Белгород с севера, был сильно укреплен развитой системой траншей полного профиля. Подступы к деревне были оплетены колючей проволокой в три кола и заминированы. Огневая система была построена на фланкирующем и перекрестном огне орудий и пулеметов. Только на направлении удара 375-й дивизии было обнаружено до 20 дзотов. Южнее деревни находился резерв врага. На рассвете 5 августа 1241-й сп майора Александра Николаевича Парамошкина и 1245-й полк подполковника Арсентия Николаевича Калинина атаковали вражеские позиции. После упорного боя советские воины ворвались в траншеи. Во многих местах завязалась рукопашная схватка. Гитлеровцы оказывали отчаянное сопротивление, дважды контратаковали, поэтому темп наступления замедлился, хотя полки 375-й дивизии шаг за шагом все же двигались вперед. Поскольку малейшая заминка дает возможность врагу перегруппировать свои силы, подбросить свежие подкрепления, занять более выгодные оборонительные рубежи, командир дивизии полковник Говоруненко ввел в бой свежий 1243-й полк майора Федора Степановича Дзгоева (Федор Дзгоев был смертельно ранен 10 августа 1943 года, и командование полком принял майор Митрофан Александрович Нефедов. – П. Б.). Полк, обойдя Ячнев Колодезь справа, при поддержке танков 96-й тбр стремительной атакой вышел на шоссе Белгород – Обоянь южнее Ячнева Колодезя. Смелый маневр 1243-го сп обеспечил успех 1241-му сп – на левом фланге дивизии полк майора Парамошкина, преодолев проволочное заграждение, атаковал и захватил Ячнев Колодезь. Пал крупный узел сопротивления, прикрывавший Белгород с севера. Захват Ячнева Колодезя значительно облегчил освобождение Оскочного 305-й сд. Также получили возможность быстрого продвижения вперед части 89-й гв. сд, наступающие вдоль железной дороги восточнее Ячнева Колодезя.
Вместе с тем достижение этих успехов оказалось связано с большими потерями для советских войск – по немецким данным[747], за 5 августа частям 198-й пд генерала Ганса Горна (Hans Horn) удалось уничтожить 32 танка и САУ противника. Поэтому с целью подавления мощной огневой системы, заранее подготовленной немцами вокруг Белгорода, генерал Конев приказал генералу Горюнову нанести массированные авиаудары по оборонительным позициям неприятеля, прикрывавшим северные подходы к городу. Для подавления противника были задействованы группы 1-го бомбардировочного и 1-го штурмового корпусов, получившие задачу «смешать с землей» большую часть долговременных укреплений врага и тем самым расчистить путь для продвижения вперед стрелковым войскам, артиллерии и танкам[748]. Последовательными ударами эшелонированных групп Пе-2 и Ил-2 огневая система обороны города оказалась подавлена, что позволило 375-й и 89-й гвардейской стрелковым дивизиям 48-го ск прорваться к северным окраинам Белгорода, а 305-я сд начала обходить его с запада. При этом германской авиации не удалось оказать существенного влияния на развитие ситуации на Белгородском направлении, поскольку главной целью немецких летчиков-истребителей 5 августа оказались вражеские истребители – из 28 заявленных сбитыми советских самолетов всего шесть приходилось на штурмовики и бомбардировщики[749].
В полосе 53-й А в результате ночного боя частям 28-й гв. сд удалось при поддержке бронетехники выбить противника из опорного пункта в Стрелецком и двумя батальонами форсировать реку Везелка, захватив и разминировав два моста. По этим мостам были немедленно двинуты передовой отряд и главные силы 1-го мк, а также части 84-й сд полковника Павла Ивановича Буняшина. Однако стрелковые части, танковые и механизированные подразделения скопились у мостов, образовав здесь заторы, по которым противник немедленно нанес авиаудар, задействовав до 50 пикирующих бомбардировщиков[750].
Только к 9 часам передовой отряд 1-го мк генерала Соломатина форсировал реку Везелка в районе Болховца и с боем стал развивать наступление на Грязное, обходя Белгород с запада. Используя продвижение мехкорпуса, командующий 48-го ск генерал Рогозный направил 305-ю сд также в обход Белгорода с запада на Архангельское с целью выйти в район Красного на шоссейную и железную дороги, ведущие на Харьков. В то же время 375-я сд, наступая вдоль шоссе Обоянь – Белгород, вышла на окраину города и завязала бой западнее шоссе. Командир дивизии полковник Говоруненко решил блокировать шоссе одним батальоном 1241-го сп, а с 1243-м и 1245-м полками во взаимодействии с 96-й тбр и 89-й гв. сд штурмом овладеть западной частью Белгорода. В результате две стрелковые дивизии 69-й А почти одновременно ворвались в город и начали его штурм, завязались ожесточенные уличные бои (официально считается, что первыми в Белгород вошли подразделения 270-го гв. сп под командованием гвардии подполковника Николая Эммануиловича Прошунина из состава 89-й гв. сд).
С выходом частей 1-го мк на Грязное, 305-й дивизии – западнее деревни Красное, а соединений 7-й гв. А – к реке Северский Донец, южнее Белгорода, немецкий гарнизон в городе оказался охваченным с флангов. Под угрозой окружения командир 198-й пд генерал Горн и командование группы «Кемпф» решили спешно отводить свои основные силы из центра города за реку Везелка. Для обеспечения этого отход в разных районах города оставались сильные отряды прикрытия, чтобы в уличных боях задержать советские части.
В итоге к 18 часам 5 августа соединения 69-й А при содействии частей 111-й сд 7-й гв. А (командир дивизии полковник Михаил Алексеевич Бушин) уже вели бои в центре Белгорода, хотя ожесточенное сопротивление отдельных немецких боевых групп продолжалось до позднего вечера на окраинах города – у церкви в западной части Белгорода, в районе пивного завода и районного Совета местных депутатов исполнительной власти. 1-й шак генерала Рязанова продолжал оказывать поддержку наземным войскам даже в ходе уличных боев. К часу ночи с 5 на 6 августа части 375-й Уральской и 89-й гвардейской стрелковых дивизий и 96-й тбр, очистив Белгород, вышли к реке Везелка, а наступающая в обход города с запада 305-я сд к тому времени вела бой за деревню Красное. Таким образом, успешный штурм Белгорода был произведен в тот же день, когда был взят Орел, что отметили в Москве первым за время войны артиллерийским салютом – двенадцатью артиллерийскими залпами из 120 орудий.
К исходу 5 августа 69-я А и правофланговые части 7-й гв. А достигли рубежа Красное – Супруновка. В то же время войска 53-й А, выбив немцев из опорных пунктов Стрелецкое и Болховец, с боями вышли на линию Водяное – Красное, а 1-му мк удалось из-за правого фланга 53-й А продвинуться в район Грязное – Репное, ликвидировать узлы сопротивления противника в населенных пунктах Стрелецкое, Болховец и отрезать белгородской группировке немцев пути отхода на юго-запад и юг, хотя задача корпуса выйти в район Микояновки осталась нерешенной. К исходу дня войска 53-й А и части 1-го мк продвинулись на 10 км и перерезали железную и шоссейную дороги Белгород – Харьков. В связи с этим немцам пришлось отходить от Белгорода по долине Северского Донца под воздействием авиации и артиллерии противника. Тем не менее форсировать реку Везелка с ходу по всему фронту прорыва советские войска не смогли, так как ее болотистые берега исключали возможность переправы вброд тяжелой техники, а мосты были большей частью взорваны. Используя эту водную преграду, которая исполнила большую роль в организации обороны, германское командование отвело свои силы за реку на рубеж Супру новка – Красное – Пушкарное, где стремилось закрепиться, выиграть время и дать возможность войскам подготовиться к отступлению на заранее подготовленные рубежи в направлении Харькова.