В ходе сражений несколько раз повторялся один и тот же сценарий. Превосходящие по численности советские войска наносили удары, раскалывающие фронт противника, охватывали его крупную группировку. Окруженные войска вермахта сохраняли боеспособность, Манштейн наносил контрудары. В итоге окруженная группировка, бросив технику, как правило, выходила из окружения с большими потерями. Войска обеих сторон вязли в грязи, но Красная армия продвигалась вперед.
В целом наступление на Правобережной Украине получило название Днепровско-Карпатская стратегическая операция (24 декабря 1943 — 6 мая 1944 гг.), которая сама является серией фронтовых операций.
В ходе Житомирско-Бердичевской операции (24 декабря 1943 — 15 января 1944 гг.) войска 1-го Украинского фронта отбросили противника дальше от Киева и освободили Житомир, создав угрозу флангу группы армий «Юг».
5-16 января 1944 г. в ходе Кировоградской операции войска 2-го Украинского фронта 8 января освободили Кировоград, но не смогли соединиться с 1-м Украинским фронтом. Окруженная 3-я танковая дивизия противника 8 февраля прорвалась на запад.
Гитлер требовал от своих генералов, чтобы они продолжали цепляться за Днепр. Это было и важным пропагандистским фактором (вермахт все еще на Днепре), и к тому же разделяло 1-й и 2-й Украинские фронты, создавая угрозу удара им во фланг с Каневского выступа.
24 января началась Корсунь-Шевченковская операция, в ходе которой силами двух Украинских фронтов 31 января было окружено более семи немецких дивизий численностью от 54 до 80 тысяч. Генерал Н. фон Форман вспоминал о советском наступлении: «Другого сравнения я не нахожу — прорвало плотину, громадный поток хлынул на равнину мимо наших танков, окруженных немногочисленными гренадерами, как мимо скал, возвышающихся в бурлящем потоке. Мы поразились еще больше, когда чуть позже кавалерийские соединения трех советских дивизий сомкнутым строем помчались сквозь наш заградительный огонь».
Противник наносил контрудары, на короткое время немцам удалось даже отсечь прорвавшиеся корпуса 5-й танковой армии. Но полуокруженные советские танковые части не стали останавливаться и в районе Звенигородки соединились с частями 1-го Украинского фронта. Советские войска не стали развивать успех вглубь фронта, сосредоточившись на ликвидации окруженной группировки под командованием генерала В. Штеммермана. Противник наносил сильные деблокирующие контрудары, но безуспешно. Окруженная группировка продолжала ожесточенно сопротивляться, и в ночь с 16 на 17 февраля бросилась на прорыв. Под ударами советских войск немцы понесли большие потери, погиб и Штеммерман, но более 30 тыс. немецких солдат вышли к своим.
27 января конные корпуса РККА прорвались в немецкие тылы в районе Ровно и действовали во взаимодействии с партизанами Ковпака, Федорова и Сабурова. Наступая в болотистом Полесье, войска 1-го Украинского фронта снова стали обходить фланг группы армий «Юг».
На предложения Манштейна отвести войска на более удобные позиции Гитлер возражал: «Ведь когда-нибудь русские перестанут наступать! С июля прошлого года они ведут непрерывное наступление. Долго это не может продолжаться».
Несмотря на стремление Манштейна спрямить фронт, Гитлер отказывался давать согласие на отход с Никопольского плацдарма, который, благодаря изгибу Днепра, уходил далеко на восток и прикрывал Крым. Попытки 3-го и 4-го Украинских фронтов взять плацдарм долго не удавались, и только в результате Никопольско-Криворожской операции (30 января — 29 февраля) этот очаг сопротивления был ликвидирован, но оборонявшаяся здесь 6-я армия сумела отойти. 8 февраля был освобожден Никополь, 22 февраля — Кривой рог.
Продвинувшись от Днепра вглубь Правобережной Украины, четыре Украинских фронта все же не смогли разгромить группы армий «Юг» и «А». Войска увязли в непролазной грязи, в которой часто не могли двигаться даже танки.
Весной была предпринята новая серия ударов в прежнем направлении.
В ходе Проскурово-Черновицкой операции (4 марта — 17 апреля) сменивший погибшего Ватутина Жуков сосредоточил силы уже трех танковых армий и вышел к Днестру. Группа армий «Юг» была рассечена.
Под Тернополем 7-10 марта войска 3-й и 4-й советских танковых армий столкнулись с контрударом девяти танковых и пяти пехотных дивизий противника. В этом сражении участвовало около 1300 танков. Наступление 1-го Украинского фронта было приостановлено. Но, взяв Черновцы 17 марта и 18 марта — Жмеринку. 1-й Украинский фронт создал угрозу окружения 1-й танковой армии X. Хубе под Каменец-Подольском. С юга подходили части 2-го Украинского фронта. 26 марта Каменец-Подольский был взят, а 31 марта здесь была окружена 200 тысячная группировка. Нанеся удар на северо-запад, германская 1-я ТА вышла из советского окружения 7 апреля, что позволило немцам прикрыть Львов.