1-я Конная армия была сосредоточена на участке в 10 км северо-восточнее Ново-Фастова. К вечеру 3 июня 1-я Конная армия заняла исходный рубеж для наступления. В эти дни стояла дождливая погода. Польское командование рассчитывало, что плохая погода помешает советским войскам начать военные действия. Более того, оно было уверено в том, что советская кавалерия понесла значительные потери, и само готовило наступление с целью окончательного разгрома армии Буденного. На рассвете 5 июня 1-я Конная армия перешла в наступление. Дождь и густой туман позволили большевикам скрытно выйти на рубеж атаки и перейти в стремительное наступление. Когда же польские войска заметили советских бойцов, было уже поздно. Через два часа после начала атаки польский фронт был прорван в районе Сквира—Самгородок.
Наступление советских войск было настолько стремительным, что к вечеру того же дня 1-я Конная армия прорвалась севернее и восточнее Казатина, разрушив в ряде мест железную дорогу Фастов—Казатин— Липовец, и вышла в тыл 3-й польской армии. В 18 часов 7 июня 4-я кавалерийская дивизия овладела Житомиром, уничтожив польский гарнизон и освободив из плена 7 тысяч красноармейцев, которые сразу же встали в строй. В этот же день 11 — я кавалерийская дивизия заняла Бердичев. Глубина прорыва 1-й Конной армии в тыл польских войск составила 120–140 км. Польский фронт на Украине оказался расколотым на две части. Потеряв управление своими войсками, польский штаб во главе с Пилсудским, находившийся в Житомире, в спешке передислоцировался в Новоград-Волынский.
Выход частей 1-й Конной армии в глубокий тыл 3-й польской армии и успешное продвижение ударной группы 12-й армии создали благоприятные условия для полного окружения польских войск в районе Киева. Реввоенсовет Юго-Западного фронта 8 июня потребовал от 12-й армии занять район станций Бородянка и Ирша, с тем чтобы перерезать последнюю магистраль Киев— Коростень, по которой поляки еще имели возможность отвести свои войска из района Киева.
Начавшийся отвод польских войск к Киеву способствовал советскому наступлению. Уже 8 июня Фастовская группа в результате стремительной атаки бригады Котовского захватила город Сквиру. Затем части Фастовской группы заняли города Белая Церковь и Фастов, отрезав тем самым пути отхода противника из района Киева на юг и юго-запад. Выполняя поставленную задачу по окружению польских войск в районе Киева, большевистские войска усилили натиск.
9 июня 1-я Конная армия начала наступление на Киев, нанося удар с тыла по 3-й польской армии, которая вынуждена была поспешно отступать. В связи с тем, что войска Фастовской группы заняли Фастов, а 3-я польская армия начала отход из района Киева, командование Юго-Западного фронта посчитало дальнейшее продвижение Конной армии на восток излишним. Полагая, что войск 12-й армии и Фастовской группы будет достаточно для разгрома 3-й польской армии, 10 июня РВС Юго-Западного фронта приказал 1-й Конной армии повернуть на запад и выйти в район Житомир—Казатин для дальнейшего удара по тылам 6-й польской армии.
3-я польская армия сумела выйти из критического положения беспрепятственно, почти нигде не встречая противодействия конницы Буденного. В итоге 3-й армии удалось избежать разгрома.
Тем не менее прорыв 1-й Конной армией фронта польских войск на Украине позволил советским войскам захватить стратегическую инициативу. 15 июня 1920 года войска Юго-Западного фронта начали преследовать отходившие на запад войска противника. Поражение 3-й армии заставило польское командование с утра 13 июня начать отвод на запад 6-й армии. Советские войска, заняв Гайсин, начали преследовать отступавшие части. 20 июня части 14-й армии овладели станциями Калиновка и Жмеринка. К 20 июня советские войска вышли на линию Житомир—Бердичев— Казатин—Винница.
Прорыв фронта на Украине обнажил фланг польских войск Северо-Восточного фронта. Это привело к тому, что 18 июня начался отход польских частей, находившихся перед Мозырской группой Западного фронта в районе города Речицы. Большевистские войска форсировали Днепр и, развернув наступление на его правом берегу, в ночь на 29 июня заняли Мозырь. Выход войск Западного фронта в этот район нарушал оборону польских войск, действовавших в Белоруссии. Развивая наступление, левофланговые дивизии Западного фронта к 30 июня вышли на рубеж железнодорожной линии Жлобин—Мозырь.
В ходе отступления поляки активно применяли тактику «выжженной земли». Так, в Киеве были выведены из строя электростанция, городская канализация, пассажирская и товарная станции. Большевики попытались обернуть эти факты в свою пользу. Так, в ноте, адресованной Западу, правительства РСФСР и УССР заявили, что «прекрасный собор Святого Владимира, эта не имеющая себе равных жемчужина русского религиозного зодчества и уникальный памятник с бесценными фресками Васнецова, был уничтожен поляками при отступлении только потому, что они желали выместить свою злобу, хотя бы на неодушевленных предметах». Вскоре выяснилось, что Владимирский собор не пострадал…
В свою очередь, польский Красный Крест в июне направил протест в Международную организацию Красного Креста по поводу того, что при отступлении Красной Армии в Бердичеве, Житомире и Киеве были взяты заложники из гражданского населения и вывезены далеко в тыл, что «при возвращении в Бердичев красноармейцы выбрасывали из лазаретов Красного Креста всех больных и раненых, не щадя чести и жизни врачебного персонала». «Большевики пытают пленных, — говорилось в документе, — чтобы получить от них военные сведения, поступая против азбучного понимания о правилах ведения войны».
Развивая наступление, армии Юго-Западного фронта в середине июля вступили на территорию Польши (Западной Украины). После занятия Ровно 1-я Конная армия оказалась втянута в упорные бои в районе Дубно-Кременец, который несколько раз переходил из рук в руки. Все же большевикам 12–21 июля удалось продвинуться в направлении Львова, что позволило и войскам 14-й армии ускорить наступление. Успехи Юго-Западного фронта способствовали созданию выгодных условий для перехода в общее наступление войскам Западного фронта, поскольку для спасения своих войск на Украине польское командование бросило туда все резервы и сняло часть сил, расположенных в Белоруссии.
Тем временем большевистское командование принимало меры по усилению войск Западного фронта, который только в июне получил более 58 тысяч человек пополнения. В составе Западного фронта насчитывалось 145 346 бойцов, 2758 пулеметов, 693 орудия, 12 бронепоездов, 30 бронемашин, 3 танка и 73 самолета. Польские войска насчитывали 75,3 тысячи бойцов с 464 орудиями. Войскам 4-й, 15-й и 3-й советских армий противостояла 1-я польская армия (генерал Жигадлович). Против советской 16-й армии и Мозырской группы действовали 4-я польская армия (генерал С. Шептицкий) и Полесская группа (генерал В. Сикорский). На направлении главного удара большевистские войска Западного фронта превосходили поляков в 3 раза. В полосе же действия 16-й армии и Мозырской группы превосходство было незначительным. Польское командование, ожидавшее нового советского наступления в Белоруссии, предлагало отвести войска на линию Барановичи—Лида-Ораны-Вильно, но генерал Шептицкий считал, что следует все же попытаться остановить наступление большевиков на имеющейся линии фронта.
На рассвете 4 июля войска Западного фронта перешли в наступление. 4–7 июля правофланговые войска Западного фронта смяли фронт 1-й польской армии и нанесли ей тяжелые потери. Группа «Двина» этой армии была разгромлена, и ее остатки отошли на территорию Латвии, где были интернированы. Другая группа 1-й польской армии — группа генерала Л. Желиговского (10-я пехотная дивизия) отступила на линию старых германских окопов. Потерпела серьезное поражение и третья группа 1-й польской армии под командованием генерала Енджеевского (7-я резервная бригада и пехотная бригада 5-й дивизии). Уже к концу первого дня наступления войска правого крыла Западного фронта продвинулись на 15–20 км. Польское командование, не имея возможности остановить наступление Красной Армии в Белоруссии, вынуждено было отдать 5 июля приказ об отходе в общем направлении на город Лида. Полностью окружить 1 — ю польскую армию большевикам не удалось.