Bitwa pod Brodami i Beresteczkiem była największą kawaleryjską bitwą XX wieku, w której po jednej stronie walczyła armia konna składająca się z czterech dywizji kawalerii, a po drugiej grupa operacyjna jazdy złożona z dwóch dywizji jazdy i jednej samodzielnej brygady jazdy.

Celem bitwy pod Brodami i Beresteczkiem było rozbicie sowieckiej I Armii Konnej Siemiona Budionnego, stanowiącej swoiste „koło napędowe” działań zaczepnych Frontu Południowo-Zachodniego. Dzięki rozbiciu tego związku operacyjnego możliwe byłoby użycie części jednostek polskich w czasie zwrotu zaczepnego na skrzydło sowieckiego Frontu Zachodniego, jakie planował Wódz Naczelny marszałek Józef Piłsudski już na przełomie czerwca i lipca 1920 r.

Ponieważ sowiecka I Armia Konna wykazywała się bardzo dużą ruchliwością zarówno taktyczną, jak i strategiczną, z łatwością unikała ona bitew o charakterze rozstrzygającym. Dywizje piechoty polskiej nie były w stanie zmusić jej do walki, ponieważ wykorzystując luki w polskim ugrupowaniu na Ukrainie obchodziła ona ich skrzydła, przecinając zarazem linie komunikacyjne. W związku z tym na początku lipca pod Zamościem rozpoczęto formowanie Grupy Operacyjnej Jazdy pod dowództwem gen. Jana Sawickiego. Ostatecznie w skład grupy weszła 1 i 2. Dywizja Jazdy oraz samodzielna 4. Brygada Jazdy.

W ostatnie dekadzie lipca 1920 r. sowiecka I Armia Konna prowadziła działania nad Styrem rozciągnięta od Targowicy do Brodów. Armia przeszła na lewy brzeg Styru pod Szczurowicami, wchodząc jednocześnie pomiędzy polską 2 i 6. Armię. 24 lipca 1920 r. dowódca I Armii Konnej otrzymał od dowódcy Frontu Południowo-Zachodniego Aleksandra Jegorowa rozkaz opanowania do 29 lipca 1920 r. rejonu Lwów, Rawa Ruska. W związku z tym I Armia Konna zaczęła zmieniać kierunek działania na Kamionkę Strumiłową.

W odpowiedzi na ten manewr dowódca polskiego Frontu Ukraińskiego gen. Edward Rydz-Śmigły zmienił podporządkowanie 1. Dywizji Piechoty Legionów z 3. Armii do 2. Armii gen. Kazimierza Raszewskiego, w celu wzmocnienia jego związku operacyjnego. Jednocześnie wycofał 3. Armie nad rzekę Stochód przedłużając jej prawe skrzydło do Łucka.

Plan rozbicia sowieckiej I Armii Konnej zakładał, że 2. Armia skoncentruje Grupę Operacyjną Jazdy i 6. Dywizję Piechoty na północny-zachód od Beresteczka, aby z tego rejonu wykonać uderzenie w ogólnym kierunku na Brody i Radziwiłłów, na skrzydło i tyły sowieckiej I Armii Konnej. W tym czasie 18. Dywizja Piechoty i X Brygada Piechoty miały związać walką jednostki Budionnego, jednocześnie ubezpieczając linię kolejową Krasne – Złoczów. Od północy i północnego-wschodu natarcie 2. Armii miała ubezpieczyć 1. Dywizja Piechoty Legionów działająca na kierunku Radomyśl – Demidówka.

Zadanie główne wykonywała 2. Armia, która miała działaniem Grupy Operacyjnej Jazdy niejako „unieruchomić” i związać walką siły główne sowieckiej I Armii Konnej, a następnie ją rozbić. W planie tym 6. Armia wykonywała zadanie pomocnicze. Pas działania 2. Armii został ograniczony od północy linią Torczyn – Boratyn, a od południa przez Kamionkę Strumiłową i Brody.

Natarcie 2. Armii miało rozpocząć się 29 lipca 1920 r., jednakże w tym dniu Grupa Operacyjna Jazdy zdołała osiągnąć Styr jedynie oddziałami 1. Dywizję Jazdy, natomiast dowództwo Grupy oraz 2. Dywizja Jazdy znajdowały się w marszu z Kryłowa do Horochowa. Także 6. Dywizja Piechoty dopiero kończyła koncentrację pod Beresteczkiem. Natarcie rozpoczęły jedynie działające na skrzydłach 1. Dywizja Piechoty Legionów i 4. Brygada Jazdy. W godzinach popołudniowych 1. Dywizja Piechoty Legionów sforsowała Styr pod Malewem i odrzucając oddziały sowieckiej 14. Dywizji Kawalerii opanowała Kniahinin. Z kolei 4. Brygada Jazdy uderzyła przez Szczurowice na Stanisławczyk, w celu nawiązania łączności taktycznej z oddziałami 18. Dywizji Piechoty z 6. Armii. W czasie działań brygada płk. Gustawa Orlicz-Dreszera napotkała na przeważające siły 4. i 6. Dywizji Kawalerii, które zmusiły ją do odwrotu spod Leniszowa na Szczurowice. W związku z tym gen. Raszewski skierował 4. Brygadę Jazdy w dniu następnym na Toporów.

30 lipca 1920 r. 1. Dywizja Piechoty Legionów pobiła pod Demidówką siły główne sowieckiej 14. Dywizji Kawalerii, zmuszając ją do odwrotu na Pełczę i wycofania się z udziału w działaniach rozstrzygających w kolejnych dniach. 6. Dywizja Piechoty pod Mytnicą stworzyła warunki do wprowadzenia do natarcia Grupy Operacyjnej Jazdy. Niestety natarcie to zostało powstrzymane przez sowiecką 4. i 6. Dywizję Kawalerii, które odrzuciły 4. Brygadę Jazdy i zmusiły 1. Dywizję Jazdy do wycofania się na rzekę Sydołówkę, a następnie na rzekę Lipę. Tego dnia oddziały 18. Dywizji Piechoty z 6. Armii uderzyły z rejonu Krasne, Ożydów na Połoniczną i Toporów. Miejscowości te zostały opanowane przez XXXVI Brygadę Piechoty, która przegrupowała się w celu kontynuowania natarcia na Brody. Miasto to było celem natarcia X i XXXV Brygady Piechoty, które bezskutecznie usiłowały przełamać z południowego-zachodu obronę sowieckiej 45. Dywizji Strzeleckiej.

W związku z niepomyślnym rozwojem sytuacji gen. Rydz-Śmigły zarządził przegrupowanie, które zostało przeprowadzone 31 lipca 1920 r. Natarcie jednostek polskich zostało wznowione 1 sierpnia 1920 r. Główne zadanie wykonywała Grupa Operacyjna Jazdy, która wyszła na linię rzeki Sydołówki, wysuwając lewe skrzydło do Szczurowic. Było to możliwe dzięki współdziałaniu z oddziałami 6. Dywizji Piechoty, które opanowały Leszniów i Szczurowice. Niestety natarcie lewoskrzydłowego pułku tej dywizji utknęło pod Mytnicą. Równocześnie 1. Dywizja Piechoty Legionów ubezpieczyła te działania od wschodu wiążąc walką oddziały sowieckiej 47. Dywizji Strzeleckiej oraz 24. Dywizji Strzeleckiej. Niestety nie udało się nawiązać łączności taktycznej z jednostkami 6. Armii, ponieważ natarcie XXXVI Brygady z 18. Dywizji Piechoty z Toporowa na Łopatyn załamało się.

2 sierpnia 1920 r. szala zwycięstwa zaczęła przechylać się na stronę polską. Grupa Operacyjna Jazdy opanowała Radziwiłłów, 6. Dywizja Piechoty ubezpieczając jej prawe skrzydło podeszła pod Brody, a 1. Dywizja Piechoty Legionów zatrzymała natarcie sowieckiej 24. Dywizji Strzeleckiej pod Knihininem. Łączność taktyczną jednostki 2. i 6. Armii nawiązały w Łopatynie. Siły główne sowieckiej I Armii Konnej zostały osaczone w rejonie Brodów. Niestety tego dnia bitwa pod Brodami i Beresteczkiem została przerwana na rozkaz Wodza Naczelnego z powodu załamania się frontu polskiego nad Bugiem, gdzie przeciwnik zdołał opanować Brześć.

Grupa Operacyjna Jazdy natychmiast rozpoczęła nakazany manewr odwrotu, co dostrzegł przeciwnik, który pod Klekotowem zdołał zadać znaczne straty 2. Dywizji Jazdy. 3 sierpnia 1920 r. 2. Armia wycofała się za Styr, z wyjątkiem 4. Brygady Jazdy, która współdziałała z 18. Dywizją Piechoty w natarciu na Brody. Opanowanie Brodów przez stronę polską było ostatnim akordem bitwy pod Brodami i Beresteczkiem.

Sowiecka I Armia Konna nie została rozbita, została jednak pobita w takim stopniu, że aby odtworzyć zdolność bojową musiała wycofać się za rzekę Ikwę, czyli na odległość 60–100 km.

Bitwa pod Brodami i Beresteczkiem – taktycznie nierozstrzygnięta, dała stronie polskiej przewagę operacyjną, pozwalając Wodzowi Naczelnemu przerzucić najlepsze polskie jednostki z południa, z ukraińskiego obszaru operacyjnego, na północ, nad Wieprz, Wisłę i Wkrę, w celu użycia w Bitwie Warszawskiej.

płk dr hab. prof. Akademii Obrony Narodowej Juliusz S. Tym