Bitwa rozpoczęła się 13 sierpnia 1920, kiedy wojska Armii Czerwonej, dowodzone przez Michaiła Tuchaczewskiego, zbliżyły się do Warszawy. Walki toczyły się na obszarze sięgającym na południe po Włodawę nad Bugiem, na północ po Działdowo. Obronna faza bojów koncentrowała się na Froncie Północnym generała Józefa Hallera. 1 Armia generała Franciszka Latinika, choć początkowo zmuszona do ustąpienia w rejonie Radzymina na drugą linię obrony pomiędzy Nieporętem i Rembertowem, w końcu skutecznie zatrzymała radzieckie natarcie na przedmościu warszawskim, zaś 14 sierpnia polska 5 Armia generała Władysława Sikorskiego podjęła działania ofensywne nad Wkrą.
Decydujący cios Frontowi Północnemu Armii Czerwonej zadała grupa uderzeniowa Naczelnego Wodza Józefa Piłsudskiego, wyprowadzając 16 sierpnia kontruderzenie znad Wieprza, przełamując pozycje słabej Grupy Mozyrskiej pod Kockiem i Cycowem, a następnie wychodząc na tyły Armii Czerwonej, frontalnie atakującej Warszawę. Działania wojsk polskich wymusiły niezorganizowane cofanie się Armii Czerwonej na północny wschód. Armia Czerwona poniosła znaczne straty. Od tego momentu przez kolejne tygodnie Wojsko Polskie pozostawało w permanentnej ofensywie.