В подписанном 28 сентября в Москве Риббентропом и Молотовым Договоре о дружбе и границе между СССР и Германией устанавливалась окончательная граница обоюдных государственных интересов на территории бывшего польского государства, а государственное переустройство, осуществлявшееся к западу от установленной Германией и к востоку — Советским Союзом линии, рассматривалось «как надежный фундамент для дальнейшего развития дружественных отношений между своими народами».
В секретном протоколе была зафиксирована договоренность о сотрудничестве в борьбе против польской агитации. И оно действительно было налажено. В частности, в Закопане в декабре 1939 года был создан совместный учебный центр служб безопасности и проходили переговоры ответственных чинов гестапо и НКВД.
17 сентября в 5.00 войска Украинского и Белорусского фронтов перешли границу и стали почти беспрепятственно продвигаться на запад, делая по 50–70 км в день. При этом Полоцкая группа, разгромив отряды КОП, к вечеру следующего дня выполнила поставленную перед ней задачу — заняла Свенцяны и вышла в район Поставы. Минская группа, также не встретив сопротивления, развила бурные темпы наступления, овладев к 15.00 Молодечно, к исходу следующего дня — укрепленным районом по линии Ошмяны—Курмеляны—Гольшаны.
Дзержинская КМГ, встретив некоторое сопротивление со стороны отрядов КОП, обнаружила, что Барановичский укрепрайон никем не обороняется, и взяла его без боя. В тот же день был занят Новогрудок. К вечеру 18 сентября она вышла на железнодорожную линию Вильно—Барановичи. Бобруйская группа совместно с механизированными частями 29-го танкового батальона 17 сентября в 17.00 достигла Барановичей, на следующий день вышла в район юго-западнее города Слоним.
В ночь с 17 на 18 сентября войска Белорусского фронта начали Виленскую операцию. Охватив Вильно с севера частями Полоцкой группы и с юга Минской, 18 сентября в 11.30 танковые части ворвались в город. В плен было взято 10 тысяч польских военнослужащих. К утру 19 сентября войска фронта вышли на линию литовской границы Вильно—Лида—Волковыск—Ружаны—Ивацевичи. После этого командование приостановило движение двух правофланговых армейских групп, приказав выставить стрелковые заставы на литовской и латвийской границах. Для установления связи с германскими войсками на линию Сопоцкин—Белосток выдвигались передовые части. Бобруйская группа овладевала Кобрином и также устанавливала связь с германскими соединениями. С вечера 19 сентября войска Белорусского фронта приступили к выполнению этой директивы. 22 сентября в ходе массированных атак они овладели Гродно.
21—22 сентября войска вошли в соприкосновение с германской армией и в соответствии с соглашением между представителями СССР и Германии об установлении согласованной линии части вермахта начали отход на запад, а РККА, держа дистанцию в 25 км, стала выдвигаться на демаркационную линию. К 30 сентября войска Белорусского фронта полностью выполнили поставленную перед ними задачу.
Войска Украинского фронта перешли границу в 5.00 17 сентября и, не встречая серьезного сопротивления, стали быстро продвигаться вперед. Наиболее широким — в 230 км — фронтом наступала Шепетовская (переименованная в Северную) группа, имея главные силы на левом фланге (четыре стрелковые дивизии с танковой бригадой). К исходу дня они форсировали р. Горынь и 18 сентября заняли Ровно.
Восточная армейская группа (ВАГ), захватив волочиский мост в 5.00, форсировала р. Збруч и перешла в решительное наступление по всему фронту. В боевом приказе ВАГ констатировалось: «Противник, не оказывая серьезного сопротивления, в течение 17.9.39 отходил в западном направлении, оставив Тарнополь». Второй кавалерийский корпус вышел на р. Серет и захватил переправу северо-западнее Тарнополя. 18 сентября был занят Золочев.
Наступление Южной группы началось форсированием р. Збруч. Разбив польскую пограничную бригаду и отряды КОП, войска устремились на запад, форсировали р. Серет и к концу дня овладели г. Чортковом, вышли на р. Стрыпа от ее устья до местечка Золотники. Левый фланг группы продвинулся до р. Днестр. В районе Чорткова в плен было захвачено около 5 тысяч польских солдат и офицеров.
В итоге первого дня операции войска Украинского фронта углубились на 70-100 км, овладев Ровно, Коломыей, Тарнополем, Чортковом. На следующий день, по сводке Генштаба РККА, они заняли железнодорожный узел Сарны, г. Луцк, Станиславов, Галич, Красное, Бучач. При захвате Дубно было взято в плен 5800 солдат и 500 офицеров, а в районе Луцка — 9 тысяч, из них 1 тысяча — офицеры. При овладении Галичем Южная группа взяла в плен до 20 тысяч поляков. 19 сентября советские части вошли в Сокаль, Броды, Бобрку, Рогатин, Долину, вышли на окраины Львова. В соответствии со сводкой Генштаба РККА с 17 по 21 сентября в плен было захвачено 120 тысяч человек.
Через два часа после перехода Красной Армией польской границы немецкие войска получили приказ «остановиться на линии Сколе—Лемберг—ВладимирВолынский-Белосток», о чем немедленно было сообщено в Москву.
Сближение позиций двух армий побудило ускорить переговоры об установлении демаркационной линии, для чего в Москву 19 сентября прибыла военная делегация из Берлина. С советской стороны в них приняли участие Ворошилов и Шапошников. 20 сентября была установлена линия по р. Писса, Нарев, Висла, железной дороги вдоль р. Сан, а на следующий день подписан протокол, зафиксировавший порядок и временные параметры отхода немецких войск на запад до установленной демаркационной линии, который должен был завершиться к 4 октября.
К этому времени в соответствии со сводкой Генштаба части РККА занимали рубеж Ковель—Владимир-Волынский—Сокаль—предместья Львова. Германским войскам, в течение десяти дней окружавшим Львов (Лемберг), не удалось заставить город капитулировать. После того как в соответствии с соглашением германские части начали отходить на запад, их место занимала Восточная армейская группа, получившая приказ овладеть городом к исходу 19 сентября. Однако в районе м. Красное наступавшие части встретились с сильным сопротивлением со стороны польских войск генерала В. Орлик-Рюкемана. В результате к вечеру советские части смогли лишь выйти к окраинам Львова, но не овладеть им. По сведениям, полученным советской разведкой, в городе находились две-три польские пехотные дивизии и много офицеров, стекавшихся туда при отступлении с различных участков фронта. На помощь гарнизону Львова прорывалась группировка генерала К. Соснковского. Чтобы помочь ей, из города навстречу была направлена часть сил. Однако подход ко Львову крупной группировки советских войск лишил защитников города последней надежды. К тому же 20 сентября стало известно, что немцы разбили дивизии Соснковского. Отходившие польские части в районе Лашки Муроване наткнулись на красноармейские соединения. Последние завершили начатое немцами дело, взяв в плен большое количество польских военнослужащих. Сам генерал с частью войск ушел в Венгрию.
21 сентября по войскам ВАГ был отдан боевой приказ: «Противник удерживает последний опорный пункт на своей территории — г. Львов. Обороной города руководит фашистская организация. Принцип обороны — круговой, с уличными баррикадами и частично минированными проездами… Восточная группа войск в 9.00 22.9.39 атакует противника с задачей сломить его сопротивление, принудить сложить оружие и сдаться». Ставилась задача не только занять город, но и отрезать пути отступления польским частям на запад. Артиллерии предписывалось до наступления произвести десятиминутный огневой налет и подавить очаги сопротивления. Однако приказ выполнить не довелось. Тимошенко сообщал Сталину, Молотову, Ворошилову и Шапошникову: «В результате новых боев в городе в 8.40 22 сентября начальник гарнизона Львова генерал Лянгнер явился лично на командный пункт командующего Восточной группой т. Голикова и сдал нам город Львов. Выделена комиссия по разработке техники передачи города. Ввожу отборные части для занятия объектов и охраны их и города. На окраинах города оставляю дежурные части и остальные привожу в порядок для дальнейших действий. В городе Львове нет воды и хлеба. Принял меры к полному удовлетворению населения питанием».