С конца июля 1920 года Красная Армия силами 1-й Конной и 14-й армий начала наступление на Львов. Главный удар наносила 1-я Конная и стрелковые дивизии 24, 45 и 47-я, имея задачу за 6 дней овладеть Львовом. Преодолев сильное сопротивление противника, 1-я Конная ударила на Броды и, прорвав три линии обороны поляков, захватила Буек. Но вскоре наступление захлебнулось, и 1-я Конная была остановлена на реке Западный Буг. Поляки решили окружить Конную армию у Брод. 2-я польская армия создала Северную ударную группу (1-я, 6-я дивизии, 2-я кавдивизия, 1-я кавбригада), а 6-я польская армия Южную ударную группу (18-я дивизия, 10-я бригада), которые 29 июля ударили по позициям красных, прорвав фронт у Берестечка и Брод. К 3 августа 1920 года поляки замкнули окружение. Красными был оставлен Радзивилов, Броды, Буек, и 1-я Конная армия, измотанная в боях, была вынуждена перейти к обороне (с 3 по 13 августа). Фланговые армии, прикрывавшие продвижение 1-й Конной, слишком медленно продвигались на запад. 12-я армия с трудом прорывалась на Холм, 14-я армия завязла в боях на рубеже реки Стрип.
4 и 6 августа 1920 года английский премьер Ллойд Джордж потребовал от Советского правительства немедленно прекратить наступление Красной Армии в Польше, угрожая военными действиями и блокадой Советских республик. Но Троцкий заверил Ленина, что к 16–17 августа РККА займет Варшаву, а армии стран Антанты не посмеют вмешаться в конфликт, чреватый мировой революцией. 14 августа Троцкий издал приказ № 233 «На Варшаву!», который опоздал из-за начавшегося польского наступления.
Принимая во внимание неудачи при штурме Львова, главком советских войск 11 августа 1920 года приказал 1-й Конной армии прекратить штурм Львова и двигаться к Замостью, на соединение с главными силами фронтов. Но телеграмму расшифровали уже после начала нового наступления на Львов. В то же время РВС Юго-Западного фронта, не принимая во внимание указаний главкома, приказал 1-й Конной штурмовать Львов и оставаться в составе фронта.
С 12 августа 1-я Конная начала второй поход на Львов, также неудачный. Но 13 августа главком издает директиву о передаче 12-й и 1-й Конной армий Западному фронту, предполагая переброску этих армий на западную Волынь, на центральный участок фронта. Но приказ был расшифрован только 14 августа и на два дня безнадежно опоздал. На повторный приказ Буденный ответил только 17 августа, заявив, что Конная армия из боя под Львовом выйти уже не может. Во время решительных боев 1-я Конная не помогла частям, терпящим крах в Варшавской операции, и до 19 августа 1920 года вела изнурительные бои за Львов. 1-й Конной удалось вновь занять Броды и Буек, но у Львова, встретив сильное сопротивление польских сил, Конная армия вынуждена была остановиться.
, 17 августа штурм Львова частями 4, 6, 11-й конных дивизий принес очередную неудачу. С 20 августа Буденный начал отвод своих частей с фронта, но оказать помощь соседям 1-я Конная уже не могла, так как к этому времени красный фронт пал.
Некоторые части 1-й Конной армии успели повернуть на северо-запад, на Варшаву, но на пути их встала крепость Замостье, которую буденновцы так и не смогли взять. Эту крепость неделю обороняла 6-я украинская дивизия УНР и один польский полк…
В то же время, развивая наступление на львовский плацдарм, красная конница (8-я кавдивизия) переправилась западнее Станислава через Днестр и ударила по станции Стрый, стремясь полностью отрезать польско-украинские части, которые находились в Прикарпатье, от основных польских войск. Захват красными Стрыя (19 августа 1920 г.) привел к панике в частях УНР. Галичане из Херсонской дивизии УНР, тайно покинув фронт, ушли карпатскими перевалами в Чехословакию. Армия УНР находилась награни развала и сократилась до 5–6 тысяч бойцов.
В середине августа 1920 года битва за Варшаву приобрела неожиданный для красного командования оборот. Находясь у стен столицы Польши, командиры Красной Армии посчитали врага разбитым. В то же время французский генерал Вейган разработал план разгрома красных под Варшавой. Он решил сковать часть красных войск у Львова и нанести основной контрудар по флангу Западного фронта противника.
13 августа 1920 года первый контрудар поляков привел к разгрому частей и штаба 4-й армии. 16 августа поляками был нанесен второй и главный удар у Люблина. Польские войска охватили силы советского Западного фронта частями 1,2, 3, 4-й армий. В огромный «котел» попали части 1, 3, 4, 5, 15, 16-й советских армий. 17 августа началось паническое отступление Красной Армии. 25 августа части советского 3-го кавалерийского корпуса, 3-й дивизии 4-й армии, 2-й дивизии 15-й армии, спасаясь от польского наступления, перешли германскую границу и были интернированы. Подразделения поляков 19 августа оказались уже в Бресте — в глубоком тылу Красной Армии. В польский плен попало 62 тысячи красноармейцев.