План русских предусматривал окружение северной половины фронта Кюхлера ударом войск генерала Говорова от Ленинграда во взаимодействии с войсками генерала Мерецкова из района восточное Новгорода и вспомогательными наступательными действиями на участках, лежавших далее на юг. Начало наступления было приурочено к моменту ледостава на Волхове и Ильмене, а достаточно прочным лед стал только к 15 января. В этот день было начато наступление на обоих направлениях, и 16 января Говоров прорвался к Красному Селу, а Мерецков двумя днями позже занял Новгород. 29 января пали Ново—Сокольники, после чего Кюхлер отдал приказ об общем отступлении. 12 февраля русские захватили Лугу. Через два дня немцы покинули свой «еж» в Старой Руссе (южнее озера Ильмень), а 23 февраля отошли от станции Дно. Отсюда Кюхлер отступил на рубеж Псков, Остров, Опочка. Этот рубеж был организован генералом Моделем. Фронт шел на восток от Невеля и отсюда в район восточное Витебска. Таким образом, освобождение Ленинграда и Кронштадта было завершено.
Пока фон Манштейн был занят укреплением своих позиций к северу и северо—востоку от Винницы, Ватутин начал третье русское наступление с ограниченной целью. Перед Ватутиным стояла задача во взаимодействии с генералом Коневым окружить группу из 8 германских дивизий в районе Канева (на Днепре), Смелы, Корсуни. Эти дивизии составляли б
Последнее ограниченное наступление, которое предшествовало главным операциям зимней кампании, провел Малиновский. Он начал действовать 2 февраля на фронта в 40 миль, двигаясь на юг от Днепропетровска между Днепром и городом Софиевка и 7 февраля занял узловую станцию Апостолово. Это продвижение разрезало немецкие войска на две половины. Малиновский отбросил одну половину в направлении Никополя, а другую — на Кривой Рог. Взаимодействуя с Малиновским, на юге Толбухин 8 февраля занял Никополь, а Малиновский в течение второй половины февраля — Кривой Рог, за который велось так много боев.
Перед тем как начать большое наступление против немцев, заместитель Сталина маршал Жуков заменил генерала Ватутина на посту командующего 1–м Украинским фронтом, а начальник штаба Сталина маршал Василевский получил задачу координировать действия 3–го и 4–го Украинских фронтов генералов Малиновского и Толбухина.
Фронт Жукова простирался приблизительно на 250 миль от окраины Ковеля до района юго—восточнее Винницы. Левее выдвинулся 2–й Украинский фронт под командованием Конева, незадолго до этого ставшего маршалом. Первым объектом наступления обоих фронтов была железная дорога Одесса — Львов, в общем параллельная обоим фронтам.
Наступление начал Жуков. 4 марта он нанес удар между Острогом и рекой Случ на фронте около 60 миль. В течение первых двух дней глубина прорыва превысила 60 миль, и на железной дороге Одесса—Львов был взят Волочиск. 9 марта наступающие войска Жукова достигли окраин Тернополя.
Через два дня после начала этого наступления Конев предпринял свое наступление на участке от района южнее Звенигородки до района в 25 милях южнее Корсуни. Он быстро продвинулся на запад и 10 марта неожиданным ударом овладел большой немецкой базой в Умани, где были захвачены 500 танков и 12 тыс. грузовых автомашин. Этот быстрый и неожиданный удар настолько ошеломил немцев, что они бросились в панике отступать. Катастрофа была столь велика, что изменилась обстановка на всем южном фронте. После капитуляции под Корсунью у немцев осталось совершенно недостаточно сил и средств, чтобы задержать продвижение Конева. 12 марта он взял Гайворон, а 15 марта его танки заняли узловую станцию Вапнярка (Песчанка), что на линии Одесса — Львов, приблизительно в 30 милях от Днестра и румынской границы.
Вслед за этим успехом Жуков повернул на юг и двинулся на Черновцы — последнее связующее звено между германскими армиями в Польше и южной России. Русские продвинулись западнее реки Збруч на южный участок польской границы 1939 г.; в период 21–24 марта сопротивление немцев было сломлено. Русские достигли Днестра и форсировали его в Залещиках, севернее Коломны. К 25 марта русские переправились через Днестр на фронте в 50 миль, а 27 марта Жуков приблизился к Черновцам и через три дня занял город.
Между тем Конев своим правым крылом форсировал Южный Буг у Братислава, и немцы, беспорядочно отступая на юг. оставили 18 марта Жмеринку, 22–го — Винницу, 25–го — Проскуров и 26–го — Каменец—Подольск.