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 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 r. 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.
Według odnalezionych w ostatnich latach i ujawnionych w sierpniu 2005 roku dokumentów Centralnego Archiwum Wojskowego już we wrześniu 1919 roku szyfry Armii Czerwonej
zostały złamane przez porucznika Jana Kowalewskiego. Manewr polskiej kontrofensywy udał się zatem między innymi dzięki znajomości planów i rozkazów strony rosyjskiej i umiejętności wykorzystania tej wiedzy przez polskie dowództwo. Jednym z najważniejszych sukcesów polskiego wywiadu w okresie bitwy warszawskiej było przechwycenie i odszyfrowanie radiodepeszy dowództwa XVI Armii z 13 sierpnia, dotyczącej zajęcia Warszawy.
Powodzenie planu operacji polegającej na wykonaniu zaplanowanego manewru w dużej mierze zależy od utrzymania jego treści w głębokiej tajemnicy.
Naczelne Dowództwo Armii Czerwonej już 13 sierpnia zdobyło pod Brześciem plan polskich działań. Zginął tam dowódca pułku ochotniczego im. Stefana Batorego – mjr Wacław Drojowski. Znaleziono przy nim mapnik, a w nim rozkaz bojowy wraz z mapą.
Rosjanie doszli jednak do wniosku, że jest to mistyfikacja polska, która ma w ten sposób zmusić ich do osłony lewego skrzydła zgrupowania uderzeniowego i tym samym powstrzymać natarcie na Warszawę. Jednym z ważniejszych epizodów bitwy warszawskiej było zdobycie przez kaliski 203. Pułk Ułanów sztabu 4. armii sowieckiej w Ciechanowie 15 sierpnia, a wraz z nim – kancelarii armii, magazynów i jednej z dwóch radiostacji, służących Rosjanom do łączności z dowództwem w Mińsku. Polacy wiedzieli, że w tym czasie druga z radiostacji była wyłączona, ponieważ przemieszczała się w inne miejsce. W tym czasie dowódca frontu Michaił Tuchaczewski wydał 4 Armii rozkaz zawrócenia na południowy wschód i uderzenia na armię gen. Sikorskiego, który walczył pod Nasielskiem.
Szybkie i skuteczne rozszyfrowanie tego rozkazu przez Polaków umożliwiło przeanalizowanie sytuacji i doprowadziło do podjęcia błyskawicznej decyzji przestrojenia nadajnika warszawskiego na częstotliwość sowieckiej radiostacji i rozpoczęcie skutecznego zagłuszania znacznie odleglejszych nadajników z Mińska, dzięki czemu druga z sowieckich radiostacji, którą 4 Armia dysponowała, po jej uruchomieniu w nowym miejscu, wciąż nie była w stanie odebrać rozkazów Tuchaczewskiego. Warszawa bowiem na tej samej częstotliwości nadawała przez dwie doby bez przerwy teksty Pisma Świętego – jedyne dostatecznie obszerne teksty, które ad hoc udało się dowództwu Cytadeli, gdzie mieścił się polski nadajnik, dać radiotelegrafistom do nieustannego nadawania. Trzeba zaznaczyć, że
rozważano również możliwość nadawania błądzącym na Pomorzu oddziałom sowieckim rozkazów fałszywych, ale od pomysłu tego odstąpiono nie chcąc zdemaskować się ze
złamaniem sowieckich szyfrów. Doborowa 4 Armia straciwszy swój sztab oraz łączność z dowództwem frontu straciła koordynację działań. Nie otrzymawszy z Mińska rozkazów (ściślej: nie będąc w stanie ich dosłyszeć) zmieniających kierunek jej operowania armia ta ze swoimi sześcioma dywizjami posuwała się nadal wzdłuż linii wyznaczonej ostatnio otrzymanymi rozkazami, co zapędziło ją aż do obecnej wschodniej części Torunia (później niektórzy historycy wojskowi ironizowali, że armia ta w tym czasie walczyła nie z Polską, tylko z Traktatem Wersalskim). W ten sposób została wyeliminowana z bitwy o Warszawę. W wyniku Bitwy Warszawskiej (i następującej po niej niemeńskiej) 15 października delegacje polska i sowiecka zawarły w Rydze zawieszenie broni, a w marcu 1921 roku na jego bazie zawarty został traktat pokojowy, który do agresji ZSRR na Polskę 17 września 1939 roku przez lat dwadzieścia uregulował stosunki polsko-sowieckie i wytyczył polską granicę wschodnią. Straty strony polskiej wyniosły: ok. 4500 zabitych, 22 tys. rannych i 10 tys. zaginionych. Szkody wyrządzone sowietom nie są znane. Przyjmuje się, że ok. 25 tys. bolszewików poległo lub było ciężko rannych, 60 tys. trafiło do polskiej niewoli, zaś 45 tys. zostało internowanych przez Niemców.
Za klęskę wojsk rosyjskich w bitwie warszawskiej Tuchaczewski obciążał Józefa Stalina. Twierdził on, że dyrektywa Kamieniewa, dotycząca przekazania z Frontu Południowo-Zachodniego 1 Armii Konnej i 12 Armii pod jego rozkazy zablokowana została właśnie przez Stalina.
W 1920 roku w Polsce rozgorzał spór o autorstwo planu bitwy warszawskiej i miano zwycięzcy. Marszałek Piłsudski uważał siebie za konstruktora warszawskiego zwycięstwa. Na rozkazach operacyjnych od 12 do 16 sierpnia widnieje podpis gen. Rozwadowskiego, który przez część historyków uważany jest za głównego architekta zwycięstwa nad bolszewikami. Dodatkowo kontrowersje wzbudza fakt, ze Piłsudski 12 sierpnia złożył dymisję z piastowanych stanowisk na ręce premiera Witosa i udał się do majątku Bobowa do swoich córek i przyszłej żony Aleksandry. Poza tym opozycja jeszcze bardziej komplikowała sytuację, wysuwając wielu kandydatów, obok Rozwadowskiego m.in. Hallera, Weyganda czy Sikorskiego.
Większość przeciwników Marszałka pomija, że J. Piłsudski złożył rezygnację na ręce Witosa z urzędu Naczelnego Wodza z warunkiem, że zostanie ona ogłoszona jeżeli ofensywa znad Wieprza zakończy się porażką.
Dokumentem tym Marszałek J. Piłsudski potwierdził swoją wolę wzięcia na swoje barki całej odpowiedzialności za ryzykowny manewr.
Dzisiaj z całą pewnością można potwierdzić geniusz Marszałka Józefa Piłsudskiego w Bitwie Warszawskiej i dzięki niemu Europa została uchroniona przed zalewem bolszewickim.