План штурма города сводился к следующему: 14-я кавдивизия должна была атаковать город с севера и северо-востока, сводный отряд 17-го стрелкового корпуса с 38-й танковой бригадой — с востока; 5-я кавдивизия вместе с 10-й танковой бригадой — с юго-востока, а 3-я кавдивизия — с юга и юго-запада. Поскольку переговоры с польским командованием никаких результатов не давали, было решено атаковать город в 9.00 21 сентября. В назначенное время советские войска двинулись к городу, но польское командование возобновило переговоры, и советские части были возвращены в исходное положение. В 17 часов возле дрожжевого завода на восточной окраине города командир польского гарнизона генерал В. Лянгнер, подполковник К. Рыжинския, майор Я. Явич, капитан К. Чихирин встретились с комбригами ПА. Курочкиным и Н.Д. Яковлевым, бригадным комиссаром К.В. Крайнюковым, полковников Фотченковым, полковым комиссаром Макаровым и И.А. Серовым. В Ходе переговоров выяснилось, что польский гарнизон готов капитулировать, но следует это сделать организованно. Вернувшись в город, около 20 часов Лянгнер объявил на совещании командования обороны о решении сдать город Советам. Большинство офицеров высказалось за окончание боев.
21 сентября командующий 6-й армией издал приказ: «Противник удерживает последний опорный пункт на своей территории — г. Львов. Обороной города руководит фашистская организация. Принцип обороны — круговой, с уличными баррикадами и частично минированными проездами. Восточная группа войск в 9.00 22.9.39 атакует противника с задачей сломить его сопротивление, принудить сложить оружие и сдаться», но выполнить его не пришлось. В 8.00 22 сентября Лянгнер с составленными накануне предложениями для переговоров прибыл в штаб 24-й танковой бригады в Винники. В результате последнего раунда переговоров в 11.00 было подписано соглашение о «передаче города Львова войскам Советского Союза». Согласно 8-му пункту соглашения, офицерам польских войск гарантировалась «личная свобода и неприкосновенность их личного имущества. Отъезды в зарубежные страны им разрешаются местными властями вместе с представителями дипломатических властей данного государства». В 14.00 польские войска стали складывать оружие, а в 15.00 соединения 2-го советского кавкорпуса в пешем строю совместно с танками 24-й, 38-й и 10-й танковых бригад вступили в город. В целом гарнизон выполнил соглашение о сдаче, лишь отдельные группы офицеров в нескольких местах открыли огонь с баррикад. С помощью танков сопротивление было быстро подавлено. К вечеру 23 сентября в городе был наведен порядок и основные силы советских войск были выведены на его окраины.[681]
На южном фланге Украинского фронта в полосе Саганов р. Днестр была развернута 12-я армия, имевшая задачу занять Монастыриска, Коломыя, а на следующий день — Станиславов и Галич, в дальнейшем продвигаясь на Стрый и Дрогобыч. В 5.00 войска армии приступили к форсированию р. Збруч. Прошедшие накануне дожди размыли дороги, уровень воды в р. поднялся. Тем не менее к вечеру 17 сентября войска армии вышли на р. Стрыпа. 23-я танковая бригады, переправившись в 8.30 через Збруч, двинулась через Борщев на Городенку и Коломыю. К 16.00 танкисты форсировали в брод Днестр и захватили около Городенки 6 польских самолетов. 18 сентября 23-я танковая бригада вступила в Коломыю, где было разоружено до 10 тыс. польских военнослужащих из состава 24-й и остатков 2-й и 5-й пехотных дивизий. В 2.00 19 сентября бригада получила приказ занять Станиславов и двинулась к нему, преодолевая завалы на дороге. В тот же день в 14 часов танки достигли Станиславова и двинулись к Галичу, к которому подошли к вечеру того же дня. Выступив на следующий день через Калуш, Долину и Болехов, 23-я танковая бригада 21 сентября достигла Стрыя.
Наступавший на правом крыле армии 4-й кавкорпус в ночь на 17 сентября выслал на польскую территорию передовые разведгруппы с целью нарушить связь и захватить языков. Однако группы себя обнаружили и понесли потери в стычках с польскими пограничниками, не выполнив задачи. В результате при форсировании Збруча 4-й кавкорпус встретил организованное сопротивление польской погранстражи и в течение двух часов был вынужден вести бой на границе. Только преодолев зону пограничных заграждений, корпус получил возможность развивать наступление на Подгайцы и к вечеру 17 сентября вышел на р. Стрыпа в районе Соколува. Тем временем 13-й стрелковый корпус вышел к Днестру, а 5-й кавкорпус достиг Трибуховицы; Дулибы. 25-й танковый корпус в 19.30 после непродолжительного боя занял Чортков, пленив там до 200 польских солдат 41-го пехотного полка и захватив 4 самолета.
На следующий день соединения 4-го «кавалерийского и 13-го стрелкового корпусов окружили и после недолгого боя пленили до 10 тыс. польских военнослужащих из остатков Позненской, 6-й и 22-й пехотных дивизий. 25-й танковый корпус своей 1-й моторизованной бригадой в 16 часов занял Монастыриску, где были взяты в плен около 3 600 польских военнослужащих. К вечеру 1-я моторизованная и 4-я танковая бригады подошли к Подгамцам, а 5-я танковая бригада у Домброва вела бой с польским артполкома, в ходе которого были взяты в плен 2 500 польских солдат, и вышла на окраину Галича. 19 сентября части 25-го танкового корпуса заняли Галич, захватив в сохранности мосты через Днестр, Завадку и Збору. 19 сентября 4-й кавкорпус вышел в район Рогатин, Бурштын, где получил дневку. 26-я танковая бригада вышла в район Галич, Большовцы. Передовые отрады 13-го стрелкового корпуса продвигались к Станиславову. В тот же день корпус был подчинен командующему пограничными войсками НКВД КВО комдиву Осокину, получившему 19 сентября приказ Военного совета Украинского фронта «немедленно закрыть границу», чтобы «не допустить ни в коем случае ухода польских солдат и офицеров из Польши в Румынию».[682] С 21 сентября основные силы корпуса были развернуты вдоль границы с Румынией и Венгрией от р. Збруч до Бескид.
25-й танковый и 5-й кавкорпуса в районе Галича вели бои с остатками 26-й и 28-й польских дивизий и взяли в плен до 20 тыс. поляков. 13-й стрелковый корпус занял Станиславов и Калуш, взяв в плен до 11 тыс. польских военнослужащих. В 13.00 20 сентября 25-му танковому корпусу была поставлена задача к вечеру выйти в район Лисятыче, Стрый, а передовым отрядом занять Дрогобыч. Но в 16 часов на подступах к Стрыю стало известно, что город занят германскими войсками, поэтому 25-й танковый корпус расположился на отдых. В 15 часов 20 сентября корпусу была поставлена новая задача — сосредоточиться у Журавно, где подготовить переправы через Днестр для поддержки 4-го кавкорпуса против львовской группировки противника. Однако помощь действовавшим под Львовом советским войскам не потребовалась, и 25-й танковый корпус» сосредоточившийся в районе Луковец, Любша, Мазурувка, 22 сентября получил приказ двигаться на Подгорцы и далее на Комарно. Выйдя в ночь на 23 сентября в указанный район, части корпуса встретились там с подразделениями 2-й горнопехотной дивизии вермахта и были остановлены.