В 5 часов 30 минут и в 6 часов утра немецкие соединения из группы армий «Центр» и «Юг» перешли в наступление. На орловском направлении противник ценой больших потерь прорвал главную оборонительную полосу на Ольховатском направлении и вклинился на 6–8 км. Вспомогательный удар немцев на Малоархангельск не имело успеха. Отбивая контратаки советских войск, противник медленно продвигался вперед, но к исходу 9 июля был остановлен, его наступательный порыв полностью истощился, и он перешел к обороне. За 7 дней немецкие войска вклинились в оборону частей фронта на 10–12 км. Окружить советские соединения на четвертый день сражения, как это намечалось планом операции «Цитадель», немецкому командованию не удалось.
Командование Центрального фронта доложило в Ставку ВГК, что «войска Центрального фронта измотали в непрерывных ожесточенных восьмидневных боях врага и остановили его натиск. Первый эта сражения закончился». (Цит. по Истории второй мировой войны 1939–1945. Т.7. М., 1976. С. 149.)
На белгородско-курском направлении Э. Манштейн уже в первый день ввел в сражение большую часть имеющихся у него сил. В них участвовало до 700 танков противника. В первый день боев немецкие соединения вклинились в оборону советских войск на двух участках на глубину 8-10 км, а за два дня им удалось прорвать главную полосу обороны. 7–8 июля ожесточенные бои снова вспыхнули на обоянсксом и корочанском направлениях. Противник на узком участке 7 июля прорвал вторую полосу обороны и вклинился на обоянском направлении на 10–18 км. 8 июля немецкие соединения подверглись контрударам силами резерва Воронежского фронта. 9 июля противник добился некоторого продвижения, но в дальнейшем вынужден был отказаться здесь от продолжения атак. Одновременно несколько продвинулись войска оперативной группы «Кемпф» от Белгорода в направлении Корочи.
9 июля немецкое командование приняло решение перебросить в район Курска еще несколько дивизий и добиться перелома в ходе битвы. Манштейн решил направить удар 4-й танковой армии в район д. Прохоровки, чтобы здесь совершить прорыв к Курску. На этом правлении были сосредоточены основные силы группировки противника. В этот напряженный момент сражения Ставка ВГК приказала командующему Степного фронта выдвинуть на курско-белгородское направление 4-ю гвардейскую, 27-ю и 53-ю армии. 5-я гвардейская танковая и 5-я гвардейская армии, которыми командовали генералы П. А. Ротмистров и А. С. Жадов, были переданы Воронежскому фронту.
10 июля союзные войска высадились в Сицилии, что, несомненно, ухудшило стратегические позиции Германии. Однако высадка союзников не оказала заметного влияния на ход сражения под Курском. 10 июля, когда в ставке вермахта стало известно об этом, последовал приказ Гитлера: операция «Цитадель» будет продолжаться. По свидетельству бывшего начальника генерального штаба сухопутных войск Германии К. Цейтцлера, Гитлер требовал продолжать наступление на Курск даже после 12 июля, когда уже многим генералам вермахта было очевидно, что летнее наступление немецких войск потерпело крах.
На курском направлении продолжались ожесточенные сражения. 10 и 11 июля соединения 4-й танковой армии и оперативной группы «Кемпф» предприняли наступление в направлении Прохоровки. 12 июля в районе Прохоровки развернулось крупнейшее встречное танковое сражение, в котором с обеих сторон участвовало около 1200 танков и самоходных орудий. Две мощные лавины танков устремились навстречу друг другу. Над полем боя шли ожесточенные воздушные бои. "Более 1 200 танков и самоходных орудий, — пишет американский историк М. Кэйндин, — смешались в гигантском водовороте, окутанном пеленой дыма и пыли, озаренном вспышками танковых орудий… Атака "тридцать четверок" была проведена столь стремительно, что тщательно разработанные немецкие планы сражения оказались сорванными и немцы так и не получили возможность наладить управление своими частями и подразделениями и дать бой по всем правилам". (От Мюнхена до Токийского залива. Взгляд с Запада. М., 1992. С. 339.) К исходу дня сражение под Прохоровкой закончилось поражением главной группировки противника, который потерял 400 танков, 300 автомашин, свыше 3500 солдат и офицеров. (Самсонов А. М. Вторая мировая война. М., 1985.» С. 301.) По образному выражению М. Кэйдина, на узкой полоске земли между рекой Псел и железнодорожной насыпью юго-западнее Прохоровки погребальный звон колоколов оповестил о гибели немецких танковых сил. 12 июля стало днем крушения немецкого наступления на Курск с юга. Попытки немецких войск продолжать наступление носили локальный характер, их наступательный порыв иссяк, 19 июля командование вермахта пришло к выводу, что операция «Цитадель» потерпела крах. В журнале военных действий верховного командования вермахта в этот день сделана запись: "Из-за сильного наступления противника дальнейшее продолжение «Цитадели» не представляется возможным". (Орлов А., Новоселов Б. Факты против мифов. М., 1986. С. 79–80.)
В ночь на 19 июля в сражение был введен Степной фронт. К исходу 23 июля советские войска своими главными силами вышли на рубеж, который они занимали до начала оборонительного сражения и начали подготовку к контрнаступлению.
К началу наступления на орловском направлении (операция "Кутузов") в составе левого крыла Западного (командующий генерал-полковник В. Д. Соколовский), Брянского (командующий генерал-полковник М. М. Попов) и Центрального фронтов имелось 1 286 тысяч человек, более 21 тысячи орудий и минометов, 2 400 танков и самоходно-артиллерийских установок. Их действия поддерживались более чем 3 тысячами боевых самолетов. Противостоящая им 2-я танковая и 9-я армии группы «Центр» насчитывали до 600 тысяч человек, более 7 тысяч орудий и минометов, около 1 250 танков и штурмовых орудий, свыше 1 100 боевых самолетов.
12 июля войска левого крыла Западного и Брянского фронтов нанесли удар по противнику. Армии правого крыла Центрального фронта перешли в контрнаступление 15 июля. Немецкие войска оказывали упорное сопротивление. Стремясь удержать орловский плацдарм, командование вермахта перебрасывало сюда подкрепление с других участков советско-германского фронта. Но эти меры оказались недостаточными.
3 августа после мощной артиллерийской и авиационной подготовки перешли в наступление войска Воронежского и Степного фронта на белгородско-харьковском направлении (операция "Полковник Румянцев"). В составе обоих фронтов насчитывалось 980,5 тысяч человек, более 12 тысяч орудий и минометов, 2 400 танков и самоход артиллерийских установок и 1 300 самолетов. Общая численность противника в районе Харькова и Белгорода (4-я танковая армия и оперативная группа "Кемпф") с учетом частей усиления и тыла составляла до 300 тысяч человек, свыше 3 тысяч орудий и минометов, до 600 танков и штурмовых орудий и более 1 тысячи самолетов.
Пять советских фронтов, преодолевая сопротивление противника, развивали наступление в 600-километровой полосе. Утром 3 августа соединения Брянского фронта прорвали оборону немцев реке Оптухе и устремились к Орлу. 5 августа Орел был освобожден. В этот же день воинами Степного фронта был освобожден Белгород. Вечером 5 августа Москва салютовала артиллерийскими залпами в честь доблестных войск, освободивших Орел и Белгород. Это был первый за время Великой Отечественной войны салют, отмечавший победу советских войск. Красная Армия продолжала наступление. К 18 августа войска Западного, Брянского и Центрального фронтов очистили от противника орловский выступ, и подошли к немецкому оборонительному рубежу «Хаген» восточнее Брянска. На этом Орловская наступательная операция завершилась.
За 37 дней наступления на орловском направлении советские войска разгромили до 15 немецких дивизий, другие дивизии оказались значительно ослабленными. Советские войска овладели важным орловским плацдармом противника, прикрывавшим брянское направление.
Войска Воронежского фронта к 11 августа завершили рассечение харьковской группировки немцев и охватили ее с трех сторон, создав угрозу ее полного уничтожения. Немецкое командование, чтобы не допустить ее окружения, решило контратаковать советские войска в богодуховском и ахтырском направлениях, сосредоточив западнее Ахтырки и южнее Богодухова крупные резервы — 4 пехотные и 7 танковых и моторизованных дивизий (в том числе три танковые дивизии СО «Райх», "Мертвая голова" и "Викинг"), имевших до 600 танков. Но все попытки врага нанести поражение советским войскам контрударами района южнее Богодухова (11–17 августа), а затем Ахтырки (18-20августа) не удались. Ожесточенные бои в этих районах закончились разгромом группировки противника.
22 августа немецкое командование начало отводить свои войска из района Харькова. 23 августа войска Степного фронта при содействии войск Воронежского и Юго-Западного фронтов освободили Харьков. Москва салютовала освободителям Харькова 20 залпами из 224 орудий.