После завершения перегруппировки и занятия исходного положения русские в начале марта перешли в наступление. Войска 1-го Украинского фронта, командование которым незадолго перед этим вместо тяжело раненного Ватутина принял маршал Жуков, 4 марта нанесли удар в районе Шепетовки, пробив в ходе двухдневных боев глубокие бреши в обороне 4-й танковой армии, и вскоре, развивая прорыв, продвинулись на 50 км. 6 марта русские заняли Шумское и Острополь. Навстречу русским войскам, вначале подобно лавине стремительно продвигавшимся в южном направлении севернее Подволочиска, были брошены три немецкие танковые дивизии с целью перехватить удар противника севернее железной дороги. Однако им удалось лишь замедлить продвижение русских, и через несколько дней противник вышел к железной дороге между Тернополем и Проскуровым. Здесь сопротивление немецких войск возросло. Жуков вначале удовольствовался достигнутым успехом и перенес центр своих усилий далее на восток с намерением вступить в непосредственное взаимодействие с 2-м Украинским фронтом Конева, начавшим 6 марта наступление из района Звенигородки в направлении Гайсина и Умани. Конев нанес удар по войскам 8-й армии, еще не успевшим оправиться после понесенных под Черкассами тяжелых потерь, и добился прорыва немецкой обороны. Контрудар, предпринятый во фланг русским из района Гайсина в восточном направлении силами нескольких танковых дивизий и одной дивизии СС, привел лишь к местным успехам. Немецкие дивизии продвинулись до района Умани, однако русские вовремя отошли и подтянули крупные силы к обоим флангам прорвавшейся немецкой ударной группировки. В результате во избежание окружения ее пришлось отвести назад. 10 марта была оставлена Умань. Конев не давал больше ослабленной 8-й армии никакой передышки. 13 марта его армии продвинулись до Гайворона, вышли к Южному Бугу, через который тотчас же переправились передовые отряды. Прежде чем 8-я армия смогла подготовить оборону на правом берегу Южного Буга, русские 15 марта форсировали его в районе Гайворона на фронте 100 км, создав себе несколько плацдармов глубиной от 20 до 30 км. На следующий день они уже вышли к ведущей на Одессу железной дороге в районе Вапнярки, а на северо-западе достигли Жмеринки. В результате этого удара, а также начатого одновременно с ним наступления войск левого крыла 1-го Украинского фронта над немецким выступом в районе Винницы нависла серьезная угроза, и 20 марта его пришлось оставить.
Прежде чем возобновить наступательные действия на правом крыле, Жуков силами войск второго эшелона предпринял несколько сильных атак в северо-западном направлении, в результате чего русские продвинулись до Кременца, Дубна и Ковеля, обеспечив свой глубокий фланг. Решающим, однако, по-прежнему оставалось южное направление. Здесь, после того как была поколеблена вся немецкая оборона от Шепетовки до Звенигородки и уже был форсирован Южный Буг, открывались исключительно широкие перспективы добиться во взаимодействии с Коневым выхода к Днестру, что и удалось осуществить. Уже 17 марта в ходе боев за Винницу передовые части наступающих русских войск вышли к Днестру северо-западнее Ямполя. 20 марта смежные крылья обоих русских фронтов овладели городом Могилев-Подольский и Сороками и форсировали реку, преодолев таким образом вторую водную преграду, на которой немецкие войска могли бы остановить противника.
Немецкое командование всеми средствами пыталось задержать русских и помешать им изолировать друг от друга обе группы армий. Пока оттесненная на юг 8-я армия всеми собственными и выделенными в ее распоряжение силами оказывала сопротивление переправившимся через Днестр русским, под руководством командующего 1-й танковой армии создавалась новая ударная группировка, которая должна была остановить дальнейшее продвижение русских на запад.