Удачное проведение Красной Армией Острогожско-Россошанской операции, создало благоприятные условия для разгрома противника на участке Воронеж — Касторная. Здесь на фронте более 300 км сосредоточились основные силы 2-й немецкой армии в составе 12 дивизий. В результате Острогожско-Россошанской операции эти войска противника были зажаты советскими войсками с трёх сторон. По законам военного жанра, требовалось завершить операцию окружением и уничтожением противника. С этой целью советским командованием и была задумана Воронежско-Касторненская операция. Точкой приложения сил был избран поселок и железнодорожный узел Касторное — основании выступа. С севера на поселок должны были наступать 13-я Брянского фронта и 38-я армия Воронежского фронта, с юга 40-я армия Воронежского фронта. Соединение их в районе Касторного позволяло отсечь основные силы немецкой 2-й армии и уничтожить их в «котле». Одновременно 60-я армия должна была наступать на Воронеж строго с востока, охватив город с юга и севера и взяв войска противника в «клещи».
Схема Воронежско-Касторненской наступательной операции.
24 января 1943 года началось наступление на южном фланге силами 40-й армии и 4-го танкового корпуса. В силу погодных условий наступление развивалось медленно. Тем не менее, 25 января сопротивление противника было сломлено, 4-й танковый корпус ворвался в Горшечное. 25 января 60-я армия перешла в наступление с востока, и полностью очистила от немцев Воронеж.
Уличные бои в Воронеже. Январь 1943 г.
В освобожденном Воронеже. 25 января 1943 г.
26 января началось наступление северного фланга советских войск — 13-й и 38-й армий. По сравнению с предыдущими днями сражения, погода улучшилась, что позволило поддержать наступление авиацией силами 15-й воздушной армии. К исходу дня оборона немецких войск была прорвана. К вечеру 26 января за спиной немецких войск к западу от Воронежа ещё оставался коридор шириной около 60 км. Запечатать намечающееся окружение могли танковые части. 27 января 4-й танковый корпус нанёс глубокий удар на север. Поскольку подача топлива корпусу была затруднена снежными заносами, снабжение частично осуществлялось самолетами У-2. Корпусу удалось к вечеру 27 числа выйти на южные окраины Касторного — «точки рандеву» наступающих армий. На следующий день к посёлку подошли передовые отряды 13-й и 38-й армий с севера и востока соответственно. Начался штурм посёлка. 29 января Касторное было взято. Таким образом, коммуникации восьми дивизий Вермахта и двух венгерских дивизий оказались перерезаны.
Ставка сочла необходимым продвинуть войска двух фронтов на максимальную глубину прежде, чем противник сумеет выстроить устойчивый фронт взамен рухнувшего. По этой причине задействованные в операции войска разворачивались на запад для наступления на Старый Оскол, Курск и Харьков. Уничтожение окруженной группировки возлагалось на 38-ю армию, которая после завершения сражения должна была присоединиться к удару на Харьков. Уничтожение остатков разбитых немецких корпусов перестало быть приоритетной задачей.
Такое распределение сил привело к относительно успешному прорыву остатков 2-й армии из окружения. 29 января им удалось выбить советские части из Горшечного. Дальнейший прорыв из «котла» немцы вели тремя отдельными группами. Окружение постепенно смещалось на запад, в итоге 12-15 февраля две группы вышли из окружения в районе Обояни. Третья группа была отсечена и разгромлена. Таким образом, из 125 тысяч человек из окружения смогли вырваться менее 25 тысяч. Все складские запасы и тяжёлое вооружение было потеряно. Пока длилось сражение с окруженными частями, 40-я и 60-я армии очистили от противника Белгород и Курск, а 16 февраля 38-я армия подошла к Обояни и к утру 18 февраля выбила оттуда остатки вырвавшихся из окружения частей.
В результате проведенной операции была разгромлена крупная группировка Вермахта и освобождена большая часть Воронежской и Курской областей. Потери советских войск составили 13,8 тысяч человек. Немецкие и венгерские войска потеряли 17 тысяч человек убитыми и 86 тысяч человек пленными.
См. также: Фото | СССР. Воронеж в годы войны