W tym czasie dowódca sowieckiego Frontu Południowo-ZachodniegoAleksander Jegorow nakazał 1 Armii Konnej Budionnego zdobyć Lwów. Jej dywizje wdarły się w słabo obsadzoną lukę między 2 i 6 Armią, sforsowały Styr, a 4. i 11 Dywizja Kawalerii nacierały w kierunku na Kamionkę Strumiłową. Północne skrzydło 1 Armii Konnej osłaniała walcząca pod Łuckiem24 Dywizja Strzelców, a południowe 45 Dywizja Strzelców[7]. Natarcie 2 Armii miało rozpocząć się 29 lipca, ale do tego dnia oddziały nie zakończyły koncentracji sił. O wyznaczonej porze ruszyły tylko skrzydła 2 Armii[8]. Działająca na północnym skrzydle 2 Armii 1 Dywizja Piechoty Legionów płk. Stefana Dęba-Biernackiego od 29 do 31 lipca przeprawiła się przez Styr i wyparła oddziały 14 Dywizji Kawalerii z rejonu Demidowki[9].
Po południu, przerzucone spod Łucka oddziały sowieckiej 24 Dywizji Strzelców uderzyły od północy i wschodu na słabe szwadrony 3 pułku ułanów i wyparły je z zajmowanych pozycji[11]. 1 szwadron wycofał się ze Swiszczowa i dołączył pod Dublanami do lewego skrzydła 1 pułku piechoty Legionów. Na odsłonięte skrzydło kpt. Stanisław Kozicki wysłał 5 i 8 kompanię, a odwodowym III batalionem wsparł 3 pułk ułanów. Wieczorem dowódca dywizji płk Stefan Dąb-Biernacki postawił zadanie dowódcy 1 pp Leg. kpt. Kozickiemu do kontrataku w kierunku na Swiszczów - Kniahinin, w celu odzyskania utraconych przez polskich ułanów stanowisk. Przydzielił mu do dyspozycji batalion 8 pułku piechoty Legionów, a wsparcie artyleryjskie zapewnić miały 1 i 5 baterie 1 pap Leg. W sumie grupa uderzeniowa liczyła około 2500 żołnierzy i 60 ckm-ów[12][13].
Natarcie ruszyło jeszcze przed świtem. Od zachodu na Perekale – Kniahinin uderzył III batalion ppor. Henryka Gorgonia, natomiast oddział w składzie 5, 8 i 2 kompania pod dowództwem kpt. Zygmunta Wendy uderzał od południa i zachodu na Swiszczów. Walkę rozpoczęła 8 kompania ppor. Władysława Orlika-Broniewskiego wsparta 1/3 p.uł. i po godzinnym boju wyrzuciła ze Swiszczowa sowiecki batalion 214 pułku strzelców. Pozostawiwszy w nim spieszonych ułanów, kompania podeszła pod Kniahinin i obsadziła wzgórza na południowy wschód od wioski[14]. W godzinach rannych Sowieci kontratakowali wzdłuż drogi Kniahinin - Swiszczów. Odparła go odwodowa 5 kompania, a godzinę później do wali włączyła się 9 kompania. W tym czasie pozostałe trzy kompanie ppor. Henryka Gorgonia walczyły o Perekale, które zdobyto dopiero około godz. 7.00. Sowieci wycofali się na wzgórza na wschód od Kniahinina i Swiszczowa i rozpoczęli ostrzał wiosek ogniem artylerii i broni maszynowej. W południe na wioski uderzyła piechota z 214, 215 i 216 pułków strzelców oraz kozacy z 79 i 80 pułków kawalerii. Siły sowieckie oceniono na około 2700 żołnierzy. Po pięciu godzinach walki i niemal całkowitym wyczerpaniu amunicji III/1 pp Leg. wycofał się na zachodni brzeg Styru. Nie pomógł kontratak 2 kompanii ppor. Andrzeja Wasiutyńskiego. Wyczerpane walką obie strony zaprzestały walki. Perekale i Kniahinin chwilowo pozostały w rękach Sowietów. Wieczorem baterie 1 pułku artylerii polowej Legionów ostrzelały Kniahinin. Sowieci wycofali się z miejscowości[15][16].
Włodzimierz Nowak: Samhorodek – Komarów 1920. Walki jazdy polskiej z konnicą Budionnego, maj – wrzesień 1920. Warszawa: Bellona SA, 2010. ISBN 978-83-11-11897-3.
Wiesław Wysocki (red.): Szlakiem oręża polskiego; vademecum miejsc walk i budowli obronnych. T. 2: Poza granicami współczesnej Polski. Warszawa: Wydawnictwo „Gamb”, 2005. ISBN 83-7399-050-X.