Командующим армиями было приказано отказаться от лобовых атак вражеских укреплений, тщательно готовить каждую наступательную операцию, на важнейших направлениях действовать ударными группами. Еще 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-й армии.
Выход частей 1-й Конной армии в глубокий тыл 3-й польской армии и успешное продвижение ударной группы 12-й армии создали благоприятные условия для полного окружения польских войск в районе Киева. Реввоенсовет Юго-Западного фронта 8 июня потребовал от 12-й армии занять район станций Бородянка и Ирша, с тем чтобы перерезать последнюю магистраль Киев — Коростень, по которой противник еще имел возможность отвести свои войска из района Киева. Одновременно Фастовская группа войск должна была пехотными частями не позднее 10 июня овладеть районом Фастов — Корнин, а кавалерийской бригадой под командованием Г. И Котовского перерезать шоссе Киев — Житомир. 14-я армия должна была, подтянув в кратчайший срок 8-ю кавалерийскую дивизию, продолжать наступление в направлении Винница — Жмеринка.[102] Успешно развивалось и наступление Фастовской группы. Уже 8 июня в результате стремительной атаки бригада Котовского освободила город Сквиру. Затем части Фастовской группы заняли города Белая Церковь и Фастов, отрезав тем самым пути отхода противника из района Киева на юг и юго-запад.
Выполняя поставленную задачу по окружению польских войск в районе Киева, советские войска усилили свой натиск. Ударная группа 12-й армии развернула наступление на широком фронте. Ломая сопротивление противника, ее части 11 июня с боями переправились через р. Припять и овладели местечком Чернобыль и станцией Ирша, захватив свыше 300 пленных и железнодорожный эшелон с грузом.