W jej przebiegu zarysowały się wyraźnie trzy kompleksy wydarzeń:
13 sierpnia, w pierwszym dniu bitwy, nastąpiło gwałtowne natarcie dwóch radzieckich związków taktycznych, jednej dywizji z 3 Armii Łazarewicza i jednej z 16 Armii Sołłohuba. Nacierały one na Warszawę z kierunku północno-wschodniego. Dwie rosyjskie dywizje, które miały w nogach przeszło 600 kilometrów marszu, uderzyły pod Radzyminem, przełamały obronę 11 Dywizji pułkownika Bolesława Jaźwińskiego i zdobyły Radzymin. Następnie jedna z nich ruszyła na Pragę, a druga skręciła w prawo - na Nieporęt i Jabłonną. Rozpoczęła się dramatyczna walka pod Radzyminem, która w polskiej legendzie mylnie uznawana jest niekiedy za "bitwę warszawską".
Niepowodzenie to skłoniło dowódcę polskiego Frontu Północnego do wydania dyspozycji wcześniejszego rozpoczęcia działań zaczepnych przez 5 Armię generała Sikorskiego z obszaru Modlina, by tym samym odciążyć 1 Armię osłaniającą Warszawę.
W dniu następnym, to jest 14 sierpnia, zacięte walki wywiązały się już wzdłuż wschodnich i południowo-wschodnich umocnień przedmościa warszawskiego - na odcinku od Wiązowny po rejon Radzymina. Siły polskie stawiały wszędzie twardy opór i nacierające wojska rosyjskie nie uzyskały poważniejszych sukcesów.
15 sierpnia koncentryczne natarcie odwodowych dywizji polskich (10 Dywizji generała Żeligowskiego i 1 Dywizji Litewsko-Białoruskiej generała Jana Rządkowskiego), po całodziennych zażartych bojach przyniosło duży sukces. Odzyskany został Radzymin i polskie oddziały wróciły na pozycje utracone przed dwoma dniami. 16 sierpnia na liniach bojowych przedmościa warszawskiego toczyły się nadal intensywne walki, ale sytuacja wojsk polskich ulegała częściowej poprawie.
W strefie Modlina działania zbrojne początkowa nie dawały również wyraźnego rozstrzygnięcia.
5 Armia generała Sikorskiego, która na rozkaz dowódcy [Front Północny (1920)|Frontu Północnego]] przeszła 14 sierpnia do natarcia w kierunku Nasielska, czyniła postępy. Były to jednak sukcesy o znaczeniu lokalnym.
Dopiero w dwa dni później, czyli 16 sierpnia, koncentryczne uderzenie armii Sikorskiego, wyprowadzone z południowo-wschodnich fortów Modlina i znad Wkry, doprowadziło do opanowania Nasielska. Dało możliwość kontynuowania pomyślnych działań na Serock i Pułtusk.
Na lewym skrzydle frontu polskiego natomiast sytuacja układała się niepomyślnie. 4 Armia Szuwajewa i 3 Korpus Kawalerii Gaja, parły na Płock, Włocławek i Brodnicę, a w rejonie Nieszawy rozpoczęły już forsowanie Wisły.
Pod wpływem trwożnych wiadomości, które napływały z rejonu Warszawy oraz Włocławka i Brodnicy, naczelny wódz Wojska Polskiego zdecydował się rozpocząć manewr zaczepny znad dolnego Wieprza.
16 sierpnia 1920 rozpoczęło się kontruderzenie. Dywizje grupy uderzeniowej, mające ogromną przewagę nad słabą radziecką grupą mozyrską, ruszyły szerokim frontem, by już w drugim dniu natarcia dotrzeć do szosy Warszawa-Brześć. Rokowało to wyjście na tyły wojsk radzieckich pod Warszawą. Prawe skrzydło natarcia osłaniała 3 Dywizja Piechoty Legionów maszerująca na Włodawę i Brześć. Pod Warszawą wojska radzieckie zostały związane energicznym zwrotem zaczepnym sił polskich przedmościa, wspartych czołgami i atakującymi w kierunku na Mińsk Mazowiecki. Postępy uzyskane już w pierwszym dniu natarcia były znaczne.
3 Dywizja Piechoty Legionów zajęła Włodawę. 1 Dywizja Piechoty Legionów odcinek Wisznice-Wohyń, a 21 Dywizja Piechoty Górskiej oraz dywizje wielkopolskie 14 i 16 osiągnęły rubież rzeki Wilgi, zajęły Garwolin i wysunęły patrole pod Wiązowną. 2 Dywizja Piechoty Legionów, przerzucona z zachodniego brzegu Wisły, przejęła rolę odwodu grupy uderzeniowej.
17 sierpnia siły polskie osiągnęły linię Biała Podlaska-Międzyrzec-Siedlce-Kałuszyn-Mińsk Mazowiecki.
W tym samym czasie reszta wojsk polskich przeszła do kontrofensywy na całej długości frontu. 5 Armia znad Wkry uderzyła na XV i III Armie bolszewickie. Wskutek wspomnianego wyżej braku łączności z dowództwem i zmęczenia żołnierzy, większa część wojsk sowieckich przeszła do nieskoordynowanego odwrotu. Część sił sowieckich, 3 korpus kawalerii Gaj-Chana (dwie dywizje) oraz część 4 i 15 armii (6 dywizji) nie mogąc się przebić na wschód 24 sierpnia 1920 roku przekroczyła granicę niemiecką i została internowana na terytorium Prus Wschodnich.