Бои продолжались и становились более упорными и ожесточенными. 30 мая противник ввел в сражение свежие части. Из-за того, что силы 1-й Конной армии рассредоточились на широком фронте и действия дивизий были слабо скоординированы, противнику удалось выбить советские войска из Ново-Фастова и города Липовца. Последующие попытки 1-й Конной армии прорвать оборону противника не увенчались успехом. Отдельные части 1-й Конной армии пытались лобовой атакой разгромить опорные пункты сопротивления противника в районе Погребищ и Липовца. Здесь они понесли значительные потери, однако взять населенные пункты им так и не удалось.
Хотя развернувшиеся бои и не дали существенных результатов, но они позволили командованию фронтом и армиями более четко определить оборону противника и группировку его сил. Эти бои выявили и ряд существенных недостатков в организации и ведении наступления советских войск. Член РВС Юго-Западного фронта И.В. Сталин 31 мая и 1 июня обратился к председателю РВСР Л. Д. Троцкому с просьбой прислать фронту две стрелковые дивизии с Северного Кавказа98 . Однако Москва отклонила эту просьбу, и в телеграмме от 2 июня В.И. Ленин сообщал Сталину, что приняты меры по присылке пополнений Юго-Западному фронту. "Старайтесь подтянуть части и во что бы то ни стало продолжайте начатое наступление энергичнее", - подчеркивал Ленин и напоминал, что "по решению Политбюро наступление на Крым приостановлено впредь до новых решений Политбюро"99 .
Таким образом, от командования фронта требовалось, чтобы оно главные силы бросило для проведения киевской наступательной операции. Исходя из опыта наступательных боев в период с 26 мая по 3 июня 1920 г., Реввоенсовет Юго-Западного фронта наметил тактику прорыва обороны противника. Командующим армиями было приказано отказаться от лобовых атак вражеских укреплений, тщательно готовить каждую наступательную операцию, на важнейших направлениях действовать ударными группами. Еще 31 мая 1920 г. РВС Юго-Западного фронта дал указание командованию 12-й армии прекратить фронтальные атаки Киева, оставить против киевского плацдарма противника только 58-ю стрелковую дивизию. Все остальные силы армии свести в ударную группу для форсирования реки Днепр и прорыва фронта севернее Киева100 . Для обеспечения действий войск 12-й армии при форсировании Днепра Реввоенсовет фронта выделил северный отряд Днепровской флотилии, командиром которого был М.Г. Степанов, комиссаром - И. Данилов.
14-й армии было приказано собрать основные силы на своем правом фланге. 3 июня 1920 г. Сталин от имени РВС Юго-Западного фронта направил Буденному и Ворошилову специальную телеграмму, в которой указал на причины неудач частей 1-й Конной армии в районе Липовца и Погребищ в ходе боев с 30 мая по 2 июня. В телеграмме отмечалось, что эти бои показывают, что противник искусно сочетает маневренную войну с войной траншейной. В этих условиях Конной армии нельзя было обойтись без собственной пехоты, которая должна сковать противника с фронта, с тем чтобы кавалерийские части могли беспрепятственно совершать глубокие обходы укрепленных пунктов противника. Командованию 1-й Конной армии предписывалось отказаться от лобовых атак укрепленных пунктов кавалерийскими частями. Укрепленные места рекомендовалось обходить. В этот же день РВС Юго-Западного фронта своей директивой поставил 1-й Конной армии задачу прорвать фронта и разгромить киевскую группу войск противника. Было приказано выставить заслон в районе Липовец - Погребище, основными же силами прорвать фронт польских войск на линии Ново-Хвастов - Пустоваров, чтобы стремительным ударом захватить район Фастова и, действуя по тылам, разбить киевскую группировку противника101 .
Для выполнения операции 1-я Конная армия была сосредоточена на участке в 10 км северо-восточнее Ново-Фастова. Боевое построение 1-й Конной армии было многоэшелонным, что обеспечивало наращивание силы удара в ходе наступления. В первом эшелоне находилась 4-я кавалерийская дивизия, уступом за ее флангами - 14-я и 11-я кавдивизии и в третьем эшелоне - 6-я кавалерийская дивизия и особая кавбригада. В связи с тем что предстоявший рейд требовал быстроты передвижения частей, командование 1-й Конной армии 4 июня приказало разгрузить конные части от малоподвижных обозов и отправить их в тыл в район станции Поташ. Это движение обозов было воспринято польской разведкой как отвод в тыл всей 1-й Конной армии.
К вечеру 3 июня 1-я Конная армия заняла исходный рубеж для наступления. В эти дни стояла дождливая погода. Польское командование рассчитывало, что плохая погода помешает советским войскам начать военные действия. На рассвете 5 июня 1920 г. 1-я Конная армия перешла в наступление. Дождь и густой туман позволили советским конникам скрытно выйти на рубеж атаки и перейти в стремительное наступление. Когда же польские войска заметили советских бойцов, было уже поздно. Под ураганным огнем пулеметов и артиллерии красные конники, искусно сочетая бой в пешем и конном строю, преодолели проволочные заграждения противника и смяли его передовые части. Через два часа после начала атаки польский фронт был прорван в районе Сквира - Самгородок. В этих боях особенно отличились кавалеристы 14-й дивизии под командованием А.Я. Пархоменко.
Наступление советских войск было настолько стремительным, что к вечеру того же дня 1-я Конная армия прорвалась севернее и восточнее Казатина, разрушив в ряде мест железную дорогу Фастов - Казатин - Липовец, и вышла в тыл 3-й польской армии. В 18 часов 7 июня 4-я кавалерийская дивизия овладела Житомиром, уничтожив польский гарнизон и освободив из плена 7 тыс. красноармейцев, которые сразу же встали в строй. На станции были захвачены два вагона военного снаряжения. В этот же день 11-я кавалерийская дивизия заняла Бердичев. Кроме того, 1-я Конная армия разбила в районе Белополья польскую конную группу под командованием генерала Савицкого, прикрывавшую левый фланг 6-й польской армии. К 8 июня 1-я Конная армия окончательно сломила сопротивление войск противника, сосредоточенных в районе Казатина и Бердичева. Глубина прорыва 1-й Конной армии в тыл польских войск составила 120-140 км. Польский фронт на Украине оказался расколотым на две части. Потеряв управление своими войсками, польский штаб во главе с Пилсудским, находившийся в Житомире, в спешке передислоцировался в Новоград-Волынский.
На Днепре советским войскам содействовала Днепровская военная флотилия, которая с захватом поляками Киева оказалась разъединенной: одни суда действовали севернее, другие южнее Киева. В связи с этим было решено разбить флотилию на две боевые группы: Североднепровскую и Южноднепровскую. Базой Южноднепровского отряда из 16 боевых и 14 вспомогательных судов был Екатеринослав. В соответствии с общим планом наступления войск Юго-Западного фронта Североднепровский отряд флотилии, отошедший на р. Сож, должен был участвовать в форсировании Днепра севернее Киева и поддержать огнем артиллерии наступление ударной группы 12-й армии. Для этого отряду предстояло совершить переход с реки Сож на Днепр. Задача была исключительно трудной: вход в Днепр противник прикрывал сильным артиллерийским и пулеметным огнем в районе местечка Лоева, где разрушенный мост через Днепр загородил фарватер реки. Корабли должны были идти через узкий проход под мостом у самого берега, ежеминутно рискуя сесть на мель или натолкнуться на ледорезы. Однако другого пути в Днепр не было.
В ночь на 2 июня 1920 г. отряд из девяти судов, вооруженных артиллерией и пулеметами, двинулся к Днепру. Чтобы не создавать шума от колес, корабли шли малым ходом. Проходя под мостом, они были обстреляны обнаружившим их противником. Советские корабли повели ответный огонь. В результате весь отряд, за исключением одной канонерской лодки, преодолел лоевскую преграду, вышел в район Печки и принял участие в форсировании Днепра вместе с частями 12-й армии. В этих боях особенно отличились экипажи канонерских лодок "Малый", "Мстительный", "Геройский" и тральщика "Трал". По окончании переправы частей 12-й армии Северный отряд Днепровской флотилии перебросил по реке стрелковую бригаду на Сваромье в Вышгород, а 9 июня принял участие в боях за переправу через р. Ирпень. Все это позволило ударной группе 12-й армии в составе 7-й стрелковой дивизии и Башкирской кавалерийской бригады после ожесточенных боев 3 июня форсировать Днепр. Отразив контратаки противника, стремившегося сбросить в Днепр переправившиеся советские части, к 8 июня ударная группа 12-й армии вышла в район Дымера.
Не менее успешно действовала Южная группа Днепровской флотилии, которая вместе с приданным ей десантом (около 1 тыс. человек с 10 пулеметами и 2 пушками) после упорных боев 7 июня овладела городом Ржищев, а 10 июня выбила части противника из сильно укрепленного пункта Триполье. Это способствовало успешному наступлению Фастовской группы. В боях в районе Триполья, носивших особенно ожесточенный характер, образцы мужества и героизма проявили бойцы и командиры канонерских лодок "Губительный", "Могучий" и "Грозящий". После прорыва вражеских укреплений в районе Триполья Южному отряду Днепровской флотилии открывался путь на Киев. С востока на Киев наступала 58-я стрелковая дивизия 12-й армии.