В каневском выступе, глубоко врезавшемся в расположение советских войск, в это время держала оборону немецкая группировка, включавшая 9 пехотных дивизий, 5-ю танковую дивизию СС «Викинг», бригаду СС «Валлония» и 4 дивизиона штурмовых орудий из состава 1-й танковой и 8-й полевой армий. Вершина выступа упиралась в Днепр в районе Канева. Ширина его у основания достигала 130 км, а общая площадь достигала около 10 тысяч кв. км. В стремлении Гитлера удержать его любой ценой не последнее место занимали расчеты пропагандистского характера — немецкие повара все еще «черпают воду из Днепра». Готовясь к упорной обороне, противник тщательно укреплял свои позиции. У основания выступа, где фронт стабилизировался только в середине января, ему не удалось завершить оборонительные работы. В самом выступе резервов у немцев не имелось. Однако западнее Кировограда размешались три танковые дивизии 8-й армии, а юго-восточнее Охматова действовали три танковые дивизии 1-й танковой армии.
Замыслом советской Ставки предполагалось нанести войсками двух фронтов мощные встречные удары под основание выступа и соединиться в районе Шпола — Звенигородка. Генерал Ватутин смог выделить для проведения операции 6 стрелковых дивизий 40-й и 27-й армий и два корпуса 6-й танковой армии, которые получили задачу прорвать оборону на 15-километровом участке Тыновка — Кошевое. План 2-го Украинского фронта предусматривал прорыв в районе Вербовка — Красносилка на 19-километровом участке смежными флангами 4-й гвардейской и 53-й армий и развитие наступления на Шполу, Звенигородку. В полосе 53-й армии планировался ввод танковой армии Ротмистрова, перебрасываемой из-под Кировограда (18, 20, 29-й танковые корпуса), и Донского кавалерийского корпуса.
Чтобы перегруппировать 5-ю гвардейскую танковую армию с левого крыла фронта на правую, в четырехдневный срок была построена рокадная дорога протяженностью 135 км. Разминирование дорог для рокады проводилось одним инженерным батальоном и инженерным батальоном миноискателей. Так вот, оказывается, «миноискателями» работали 160 собак. История службы четвероногих «друзей человека» на этой войне, как и история наших инженерных войск вообще и различных бригад спецназначения в частности, до сих пор не написана. За годы войны в войска было направлено более 60 тысяч собак; в Красной Армии имелось четыре отдельных батальона собак связи, 6000 собак-минеров, обезвредивших 4 миллиона мин, на счету противотанковых собак числится более 300 уничтоженных боевых машин.
Для сковывания сил противника и отвлечения их от направления главного удара намечалось за день до начала операции предпринять наступление силами 5-й и 7-й гвардейских армий. Правее ударной группировки предполагалось наступление 52-й армии. Таким образом, Конев выделял 35 стрелковых дивизий, 3 танковых, 1 кавалерийский корпус.
Поддержка войск фронтов возлагалась на авиацию 2-й и 5-й воздушных армий, а также на 10-й истребительный авиационный корпус ПВО страны. К началу операции за счет внутрифронтовых перегруппировок на направлениях главных ударов фронтов было создано превосходство над противником по численности войск в 3–4, артиллерии в 3–6, танкам и САУ в 5–10 раз. По авиации силы сторон были примерно равными.
Операция готовилась и осуществлялась в сложных условиях рано начавшихся на Украине оттепелей и весенней распутицы. Разбитые и раскисшие дороги затрудняли маневр войск и подвоз материальных средств. Остро стоял вопрос о накоплении боеприпасов. Ненастная погода и пришедшие в негодность грунтовые аэродромы ограничивали возможность использования авиации. Кроме того, на подготовку операции отводились весьма сжатые сроки — 5–7 суток.
Наступление войск 2-го Украинского фронта началось 24 января действиями усиленных передовых батальонов. Поддержанные артиллерией и небольшими группами штурмовиков, они внезапной атакой сломили сопротивление 389-й гессенской пехотной дивизии на переднем крае и к исходу дня на 16-километровом фронте продвинулись на глубину до 6 км.
«В такой обстановке, — отмечает генерал армии А.И. Радзиевский, — было бы целесообразным решительно развить успех, достигнутый передовыми батальонами, вводом в действие главных сил ударной группировки фронта. Однако командование фронта не пошло на изменение первоначального плана операции и не ввело в этот день главных сил. В результате противнику было предоставлено время для переброски своих сил к участку прорыва с других направлений».
С утра 25 января после десятиминутного огневого налета были введены в сражение главные силы 4-й гвардейской и 53-й армий. Они сразу встретили упорное сопротивление противника. Эффективность подавления его артиллерийским огнем оказалась недостаточной. Не действовала из-за плохой погоды и авиация фронта.
Требовалось немедленное наращивание усилий наступающих войск. Однако армии и корпуса, построенные в один эшелон, не имели для этого сил и средств, и в 14 часов Конев на участке шириной всего 6 км ввел в сражение 5-ю гвардейскую танковую армию, имевшую 236 танков и самоходных установок. Тесно взаимодействуя с пехотой генерала Галанина, танкисты Ротмистрова завершили прорыв тактической зоны обороны и продвинулись к исходу дня на глубину до 18 км.
На второй день наступление армий замедлилось, так как им пришлось отразить ряд контратак спешно переброшенных к участку частей 14-й танковой и 57-й пехотной дивизий противника. 27 января немцы нанесли удары с юга 3-й, 11-й и 14-й танковыми дивизиями. Одновременно с севера ударила пехотная группировка, усиленная танками из дивизии «Викинг». После ожесточенных боев противник ликвидировал брешь в своей обороне, два корпуса 5-й гвардейской танковой армии оказались отрезанными от главных сил.
Конев, оценив сложившуюся обстановку, принял смелое решение: 29-му танковому корпусу генерал-майора И.Ф. Кириченко занять оборону фронтом на юг, 20-му продолжать развивать наступление на Шполу, Звенигородку, где соединиться с войсками 1-го Украинского фронта; 18-му танковому корпусу и конникам Селиванова войти в сражение соответственно в полосах 53-й и 4-й гвардейской армий, совместно с ними разгромить противостоящую группировку противника и развивать наступление вслед за корпусами первого эшелона танковой армии.
20-й танковый корпус в ночном бою овладел городом Шпола, а в 13 часов 28 января захватил Звенигородку и встретился с подошедшим к городу передовым отрядом 6-й танковой армии.
Войска 4-й гвардейской и 53-й армий во взаимодействии с 18-м танковым и 5-м гвардейским кавалерийским корпусами с 28 по 30 января пробили заслон противника в горловине прорыва и устремились в направлении Шполы, одновременно образуя внутренний и внешний фронт окружения.
Правда, казаки понесли при прорыве большие потери, постоянно норовя атаковать танки в конном строю: «Донцы неслись в конном строю с саблями наголо. В проходах между эскадронами мчались готовые к бою пулеметные тачанки. На станинах орудий, на подводах с боеприпасами и даже на рундуках полевых кухонь лежали наготове смельчаки с гранатами, чтобы в любую секунду ринуться на врага. А с правого и левого флангов, лесополос и оврагов фашисты посылали на казачью лавину мириады трассирующих пуль. Небо над головой расцвело необыкновенным фейерверком. Падали скошенные пулями кони. Падали люди».