С целью обеспечения организованного отхода войск 18-й армии на новый оборонительный рубеж 18-й механизированный корпус 19 июля (в этот день он вошел в состав 18-й армии) по приказу командующего Южным фронтом нанес контрудар по правому флангу 52-го армейского корпуса 17-й армии с рубежа Печера, Красное (30 км южнее Винницы) в северном направлении. Соединения 18-го механизированного корпуса под командованием генерал-майора П.В. Волоха в тесном взаимодействии с 96-й горнострелковой дивизией 17-го стрелкового корпуса в течение трех суток вели кровопролитные бои с моторизованными и пехотными частями врага, сдерживая его продвижение и нанося ему большой урон. К моменту контрудара 18-го механизированного корпуса части 17-го стрелкового корпуса уже двое суток вели ожесточенные бои в 30 км южнее Винницы с прорвавшимися частями 101-й и 100-й легкопехотных дивизий 17-й армии, в районе Копайгорода (45 км юго-западнее Жмеринки) – с подвижным венгерским корпусом, а в 25 км северо-западнее Могилева-Подольского – с соединениями румынской 3-й армии. Под давлением превосходящих сил противника 17-й стрелковый корпус, ведя тяжелые арьергардные бои, к утру 24 июля отошел на рубеж Ладыжин, Ободовка. Правее, на рубеже Гайсин, Ладыжин, закрепились соединения 18-го механизированного корпуса. К этому же времени части 55-го стрелкового корпуса вынуждены были отойти на рубеж Чечельник Ольгополь (20 км южнее Бершади).
25 июля части 1-й танковой группы нанесли удар на юго-восток и вышли на пути отхода 6-й и 12-й армий, которые по решению Ставки были переданы в состав Южного фронта. Во второй половине дня три пехотные дивизии (125, 100 и 101-я) 17-й армии и венгерский подвижный корпус прорвали оборону 18-й армии в полосе 18-го механизированного и 17-го стрелкового корпусов и овладели районом Гайсин, Ладыжин, Тростянец, Губник. Части 17-го стрелкового и 18-го механизированного корпусов к 30 июля закрепились на рубеже Колодистое, Берестяги (северо-восточнее Гайворона). Соединения 55-го стрелкового корпуса были оттеснены противником за Южный Буг, заняв оборону на рубеже Могильное, Гетмановка.
По мнению Ставки Верховного командования, основная цель противника заключалась в том, чтобы, отбросив армии Южного фронта «в южном направлении и прикрывшись с юга, овладеть переправами на Днепре между Киевом и Черкассами и развивать удар против Донбасса». В этой связи Ставка 28 июля приказала войскам Южного и Юго-Западного фронтов активными действиями сорвать наступление противника и не дать ему выйти на р. Днепр. От Маршала Советского Союза С.М. Буденного требовалось создать в районе Черкассы, Кировоград, Кременчуг сильную группировку за счет четырех вновь формирующихся дивизий и отходящих частей 6-й и 12-й армий, которой предстояло нанести согласованный контрудар в стыке Южного и Юго-Западного фронтов в общем направлении Черкассы, Винница. Командующему Южным фронтом предписывалось отвести правое крыло на рубеж Шпола, Терновка, Балта, Рыбница, где перейти в прочной обороне[198].
Однако сдержать продвижение противника не удалось. 30 июля войска немецкой 17-й армии, развивая наступление в полосе 18-й армии, захватили Голованевск. Командующий Южным фронтом 31 июля приказал генерал-лейтенанту Смирнову утром следующего дня нанести контрудар по голованевской группировке противника, вклинившейся между 18-й и 12-й армиями, и уничтожить ее. Эту задачу генерал-лейтенант Смирнов возложил на 17-й стрелковый корпус, 169-ю стрелковую дивизию 55-го стрелкового корпуса и группу майора П.Ф. Анисимова.
1 августа в 16 часов 30 минут после короткой артиллерийской подготовки 169-я стрелковая дивизия перешла в наступление из района Роскошное в северо-западном направлении на Наливайку. Соединения же 17-го стрелкового корпуса к этому времени под ударами 52-го армейского корпуса 17-й армии и венгерского 8-го корпуса были вынуждены отойти на рубеж Красногорка, Молдовка (юго-западнее Голованевска). Поэтому 169-й стрелковой дивизии смог помочь лишь 209-й полк 96-й горнострелковой дивизии ударом на Голованевск с запада, из района Красногорки. Однако противник сумел удержать Голованевск. Одновременно он нанес поражение группе майора П.Ф. Анисимова, который погиб в бою. Утром 3 августа передовые части немецкой 16-й танковой дивизии овладели Первомайском.
Маршал Советского Союза Буденный в этой связи решил отвести войска Южного фронта за р. Ингул. Но Ставка Верховного командования своей директивой от 5 августа не разрешила этого делать, а приказала войскам фронта отойти на рубеж восточный берег Днестровского лимана до Беляевки, от Беляевки на Ромистровку, Березовку, Вознесенск и далее на Кировоград, Чигирин[199].