Chiến dịch tấn công Kirovograd
Diễn biến

Từ chiều tối ngày 4 tháng 1, các trung đoàn pháo binh các cấp tập đoàn quân, quân đoàn và sư đoàn cùng 5 trung đoàn pháo tầm xa trực thuộc Phương diện quân đã bố trí xong trận địa hỏa lực, đo đạc và tính toán phần tử bắn. Các trinh sát pháo binh tại các đài quan sát hiệu chỉnh xạ kích cũng đã vào vị trí. Các quân đoàn xe tăng của Tập đoàn quân xe tăng cận vệ 5 đã tập kết đầy đủ phía sau các tập đoàn quân cận vệ 5 và cận vệ 7, mang theo 8 cơ số đạn dược và 7 cơ số xăng dầu. Đêm 4 rạng ngày 5 tháng 1, các đơn vị tuyến đầu của các sư đoàn bộ binh cận vệ 24 và 32 đã tiến hành trinh sát chiến đấu. Mọi thông tin do tù binh Đức bị bắt cung cấp tương đối khớp với tính toán của Bộ tham mưu Phương diện quân Ukraina 2. 8 giờ 10 phút ngày 5 tháng 1 năm 1944, tướng I. S. Konev phát lệnh khai hỏa. Trận pháo kích chuẩn bị kéo dài đến 50 phút.
Trên cánh Bắc Kirovograd, ngay trong ngày đầu tiên của chiến dịch Tập đoàn quân cận vệ 5 có Quân đoàn cơ giới cận vệ 7 của tướng F. G. Katkov đã mở được một đột phá khẩu rất lớn, rộng 30 km và sâu đến 12 km, vượt qua cả tuyến phòng thủ bên trong của Tập đoàn quân 8 (Đức) tại khu vực Kokhanovka và Novo Nikolaevka. Ngày 6 tháng 1, Quân đoàn xe tăng 18 được tung vào cửa đột phá và đẩy tốc độ tấn công lên cao hơn. Chiều ngày 7 tháng 1, xe tăng và bộ binh Liên Xô tràn qua các cứ điểm Lelyekovka (???), Maryovka, Adzhamka. Lữ đoàn tiền tiêu của Quân đoàn cơ giới cận vệ 7 đã tiến đến Severinka (???), Bolshaya Mamayka (???). Sau hai ngày đầu phòng thủ bị động, ngày 7 tháng 1, Quân đoàn xe tăng 3 (Đức) tổ chức phản kích. Tướng Hermann Breith điều động Sư đoàn xe tăng 14 và Sư đoàn bộ binh 376 đánh vào sườn phải Tập đoàn quân cận vệ 5 tại khu vực Fedvar (???). Tuy nhiên, cánh quân này đã ngay lập tức phải đối phó với đòn công kích từ phía Bắc của Tập đoàn quân 53 có trung đoàn 34 pháo tự hành chống tăng và 2 trung đoàn pháo chống tăng vừa cơ động từ Elizavetgradka tới yểm hộ. Cuối ngày 7 tháng 1, Sư đoàn xe tăng 14 và Sư đoàn bộ binh 376 (Đức) phải bỏ dở cuộc phản kích, rút về Kanizh.
Ở cánh Nam, trong ngày đầu tiên của chiến dịch, Tập đoàn quân cận vệ 7 (Liên Xô) vấp phải tuyến phòng ngự cứng rắn của Sư đoàn xe tăng 10 được tăng cường cho Quân đoàn bộ binh 47 (Đức) và đột phá không đủ sâu. Trong ngày tấn công đầu tiên, tập đoàn quân chi tiến được từ 4 đến 5 km. Để khắc phục yếu kém, tướng P. A. Rotmistov được lệnh đưa ngay Quân đoàn xe tăng cận vệ 6 và cả Quân đoàn xe tăng 19 từ lực lượng dự bị tăng thêm sức đột phá cho Tập đoàn quân cận vệ 7. Ngày 6 tháng 1, 2 quân đoàn xe tăng 18, 19 và Tập đoàn quân cận vệ 7 đã đánh bật Sư đoàn xe tăng 10 và các sư đoàn bộ binh 282, 320 (Đức) khỏi các cứ điểm Olgovka và Kaziryovka (???). Ngày 7 tháng 10, xe tăng Liên Xô đã vượt sông Ingul tại Kalinovka và lập tức đánh chiếm cụm cứ điểm Pavlovka (Nova Pavlovka) phía Tây Nam Kirovograd. Chiều ngày 7 tháng 1, hai đơn vị của Tập đoàn quân xe tăng cận vệ 5 là Quân đoàn xe tăng 18 và Quân đoàn xe tăng cận vệ 6 đã gặp nhau tại Shestakovka, cắt đứt đường sắt Kirovograd đi Pervomaisk và cắt đứt cả đường bộ Kirovograd - Novoukrainka. Sư đoàn bộ binh 167, các trung đoàn bộ binh 544, 546, 767 (Đức) tại khu vực Kirovograd hoàn toàn bị bao vây. Ngay trong đêm 7 tháng 1, Quân đoàn cơ giới cận vệ 7 và Quân đoàn bộ binh cận vệ 33 (Tập đoàn quân cận vệ 5) đã đột nhập Kirovograd từ phía Bắc và Tây Bắc. Sáng sớm ngày 8 tháng 1, Sư đoàn xe tăng 10, Sư đoàn an ninh quân đội 444 và Sư đoàn bộ binh 320 (Đức) cố gắng mở một cuộc đột kích dọc theo đường sắt để giải thoát cho số quân Đức bị vây tại Kirovograd nhưng vô hiệu. Các quân đoàn xe tăng cận vệ 6 và 18 (Liên Xô) đã bẻ gãy cuộc phản kích ngay trong buổi sáng 8 tháng 1 và đẩy lùi quân Đức xa thêm 15 km khỏi ngoại vi Shestakovka. Từ 6 giờ đến 10 giờ ngày 8 tháng 1, những ổ đề kháng cuối cùng của quân Đức tại Kirovograd lần lượt bị dập tắt. Kirovograd được giải phóng. Tối mùng 8 tháng 1, Moskva bắn 224 loạt pháo hoa chào mừng Phương diện quân Ukraina 2.
Ở cách bắc của chiến dịch, các Tập đoàn quân cận vệ 4 và 52 cũng phát động tấn công từ ngày 5 tháng 1. Tuy nhiên, do các tập đoàn quân này có rất ít xe tăng nên tốc độ tiến công rất chậm, trung bình mỗi ngày chỉ tiến được từ 2 đến 3 km. Ngày 6 tháng 1, Tập đoàn quân 52 đã vượt qua cứ điểm tiền tiêu Medvedovka của sư đoàn bộ binh 370 (Đức) và tiến về phía Tây. Đến ngày 8 tháng 1, tập đoàn quân này đã áp sát Smela từ phía Đông nhưng chỉ có một lữ đoàn xe tăng tham gia tấn công nên không thể đột nhập vào thành phố. Tập đoàn quân cận vệ 4 cũng hoàn thành nhiệm vụ đánh chiếm Kamenka và vượt sông Tyasmin nhưng đến ngày 9 tháng 1 đã buộc phải dừng lại trước tuyến đường sắt Smela - Pervomaisk khi vấp phải đòn chặn kích của Sư đoàn xe tăng SS "Wiking".
Ngày 7 tháng 1, Sư đoàn xe tăng 5 SS (Đức) tung ra đòn phản kích vào sau lưng Tập đoàn quân cận vệ 7 (Liên Xô) tại Novgorodka khi chủ lực Tập đoàn quân này đã kéo về phía Tây Nam Kirovograd. Tướng P. A. Rotmistrov buộc phải điều động Trung đoàn pháo chống tăng 689 của đại tá J. S. Gushev, lực lượng dự bị cuối cùng của tập đoàn quân từ Vershika-Kamenka kéo ra cản phá, ngăn chặn đòn đột kích này. Đến ngày 8 tháng 1, cuộc phản kích của Sư đoàn xe tăng 5 SS (Đức) bị chặn đứng.
Ngày 9 tháng 1, các sư đoàn xe tăng 11, 14, Lữ đoàn pháo tự hành SS "Wallon" và các sư đoàn bộ binh của Quân đoàn 11 (Đức) bắt đầu tổ chức phản đột kích ở phía Bắc Kirovograd. Ba mũi công kích chính đều có xe tăng dẫn đầu nhằm vào Tập đoàn quân 53, Tập đoàn quân cận vệ 5 và Quân đoàn xe tăng cận vệ 6 (Liên Xô). Đòn đột kích mạnh nhất do Sư đoàn xe tăng 11, Lữ đoàn pháo tự hành SS "Wallon" và Sư đoàn bộ binh 72 (Đức) thực hiện nhằm vào các sư đoàn 9, 95, 97, 110 của Tập đoàn quân cận vệ 5. Ngày 11 tháng 1, quân Đức đã chiếm lại cứ điểm Novo Pavlovka và uy hiếp thị trấn Vishnayakovka, hậu cứ của Tập đoàn quân cận vệ 5. Tướng P. A. Rotmistrov điều Quân đoàn xe tăng cận vệ 18 lên phía Bắc, phối hợp với Quân đoàn xe tăng cận vệ 6 và cánh trái Tập đoàn quân cận vệ 5 chặn đứng cuộc phản kích của các xe tăng Đức. Ngày 13 tháng 1, Tập đoàn quân xe tăng cận vệ 5 và Tập đoàn quân cận vệ 5 tung ra các đòn phản đột kích, đẩy lùi 2 sư đoàn xe tăng Đức về tuyến xuất phát của chúng. Ngày 14 tháng 1, 2 tập đoàn quân Liên Xô tiếp tục công kích và phía Tây thêm 30 km, thu hồi Novo Pavlovka và đánh chiếm thêm các điểm dân cư Maryanovka (???), Marevka và Novo Mirgorod.
Ở địa đoạn của Tập đoàn quân cận vệ 4, ngày 12 tháng 1, Sư đoàn xe tăng SS "Viking" và Sư đoàn bộ binh 376 (Đức) cũng tiến hành phản kích vào Malyi Visha (Malo Viska) và Gruzskoye. Do Tập đoàn quân cận vệ 4 không có xe tăng, tướng I. V. Galanin yêu cầu tướng S. K. Goryunov tư lệnh Tập đoàn quân không quân 5 giúp đỡ về hỏa lực. Trong các ngày 13, 14 và 15 tháng 1, Sư đoàn cường kích cận vệ 1 và Sư đoàn ném bom số 4 của Tập đoàn quân không quân 5 đã tạo thành một "hành lang lửa" dài hơn 30 km trên tuyến đường sắt từ ga Malyi Visha đến ga Gruzkoye, chặn đứng đòn công kích của các xe tăng Đức. Trong các trận không kích nói trên, các máy bay cường kích và ném bom Liên Xô đã phá hủy 20 xe tăng, 25 xe bọc thép, 10 pháo phòng không, khoảng 500 ô tô, 300 mô tô, 10 kho hàng quân sự, gây thương vong cho khoảng 1.000 lính Đức.
Ngày 16 tháng 1, dù còn đủ sức tiếp tục tấn công nhưng Phương diện quân Ukraina 2 đã chủ động chấm dứt chiến dịch để chuyển hướng tấn công sang khu vực Korsun-Shevchenkovsky.