Советское командование решило сначала обескровить наступающего врага в оборонительных сражениях, а затем перейти в контрнаступление. Начавшаяся битва сразу же приняла грандиозный размах и носила крайне напряжённый характер. Лишь ценой огромных потерь немцам удалось на отдельных участках вклиниться в советскую оборону. На Центральном фронте - на 10 километров, на Воронежском - до 35 километров.
Командующий Воронежским фронтом генерал армии Ватутин, оценивая обстановку, сложившуюся на фронте, пришёл к выводу, что противник на прохоровском направлении вводит в сражение все свои наличные силы и что срыв готовящегося нового удара явится окончательным провалом вражеского наступления на Курск с юга.
Командование фронтом приняло решение с утра 12 июля нанести контрудар силами 5-й гвардейской танковой армии совместно с 33-м стрелковым корпусом из района Прохоровка на Яковлево и силами 1-й танковой армии с 22-м стрелковым корпусом из района Меловое. 2-я и 17-я воздушные армии, завоевавшие к этому времени господство в воздухе, получили задачу поддержать основными силами контрудар наземных войск.
В 8 часов 30 минут 12 июля после 15-минутной артиллерийской подготовки войска фронта начали контрудар. Основные события развернулись в полосе наступления 5-й танковой армии, танковые корпуса которой встретили в двух километрах от исходных позиций атакующие вражеские танки. Завязалось беспримерное в истории войн ожесточённое встречное танковое сражение, которое длилось весь день.
Танковое сражение под Прохоровкой, в котором одновременно принимало участие до 1200 танков с обеих сторон, закончилось неудачно для немецко-фашистских войск. Они не смогли выполнить поставленную перед ними задачу. За этот день противник потерял около 100 танков, 500 автомашин, свыше 4500 солдат и офицеров и вынужден был перейти к обороне на этом направлении. Войска Ватутина также понесли большие потери в танках до 400 машин. Одновременно с танковым сражением проходило сражение авиации 2-й и 17-й воздушных армий РККА против 4-го воздушного флота немцев.
5 августа советские войска освободили города Орёл и Белгород. Вечером этого дня в честь крупного воинского успеха в Москве впервые за два года войны был дан победный салют. С этого времени артиллерийские салюты постоянно возвещали о славных победах советского оружия. 23 августа был освобождён Харьков. Так победоносно завершилась битва на Курской огненной дуге. В ходе неё было разгромлено 30 отборных дивизий противника. Немецко-фашистские войска потеряли около 500 тысяч человек, 1500 танков, 3 тысяч орудий и 3700 самолётов. Битвой под Курском завершился коренной перелом в Великой Отечественной войне.