Pod koniec 16 września do oddziałów sowieckich zgromadzonych w strefie przygranicznej dotarł tajny rozkaz Klimenta Woroszyłowa numer 16634: „uderzać o świcie siedemnastego!”.
Do ataku przygotowanych było sześć armii – 3., 4. i 11. zgrupowane we Froncie Białoruskim (dowódca komandarm Michaił Kowaliow) oraz 5., 6. i 12. zgrupowane we Froncie Ukraińskim (dowódca komandarm Siemion Tymoszenko). W sumie 620 tysięcy żołnierzy, prawie 5 tysięcy czołgów i 3300 samolotów.
Naprzeciwko nich stały nieliczne oddziały polskiego Korpusu Ochrony Pogranicza – KOP wystawił wiele oddziałów, które trafiły na front wojny z Niemcami, a na wschodniej granicy pozostały jedynie siły osłonowe. KOP nie był przygotowany do obrony, mimo to polscy żołnierze się bronili. Inne jednostki, które napotkała na swej drodze Armia Czerwona, to Brygada Rezerwowa Kawalerii „Wołkowysk” i Samodzielna Grupa Operacyjna „Polesie”.
Front Białoruski uderzył na Wilno, Baranowicze–Wołkowysk–Grodno oraz Brześć nad Bugiem. 18–19 września trwała obrona Wilna, a w następnych dniach – obrona Grodna. Wielu polskich żołnierzy wycofało się na Litwę, gdzie zostali internowani.
Front Ukraiński zaatakował na Łuck–Włodzimierz Wołyński–Chełm, Tarnopol–Lwów oraz Stanisławów–Stryj i Kołomyję. Tu walki trwały dłużej, ale też na południu Polski duże zgrupowania polskie usiłowały przedostać się na Węgry i do Rumunii. Trzy dni bronił KOP Rejonu Umocnionego Sarny. 29 – 20 września jednostki pod dowództwem gen. Wilhelma Orlika–Rückemana rozbiły pod Szackiem 52. Dywizję Strzelecką Armii Czerwonej. SGO „Polesie” 29–30 września stoczyła zwycięskie walki z Sowietami pod Jabłonną i Milanowem.