Jan Kazimierz chcąc nie dopuścić, by armia Rakoczego bezpiecznie opuściła polskie granice, wezwał idącego za Stenbockiem Stefana Czarnieckiego do Częstochowy. Tam Czarniecki połączył się z jazdą litewską Aleksandra Hilarego Połubińskiego oraz z grupą Tatarów, zwiększając swe siły do 10 000 żołnierzy. Na naradzie w Łańcucie 7–8 lipca postanowiono, że Czarniecki ruszy bezpośrednio za Rakoczym, a Lubomirski z Potockim zagrodzą Siedmiogrodzianom i Kozakom drogę do granicy siedmiogrodzkiej.

Bitwa Czarniecki ruszył za Rakoczym natychmiast po łańcuckiej naradzie i rozpoczął typową dla siebie wojnę szarpaną. Atakował wroga od tyłu, z boków i z frontu, niszczył jego tabory i rozbijał podjazdy. W końcu 11 lipca dopadł wojska Rakoczego pod Magierowem leżącym na północ od Lwowa. Na początku przednia straż Czarnieckiego rozproszyła grupę maruderów, jednak gdy żołnierze zajęli się rabunkiem taboru, nadciągnął na czele tylnej straży Rakoczy i przepędził polskich żołnierzy. Wkrótce jednak nadszedł Czarniecki z głównymi siłami i z marszu uderzył na wroga. Jego błyskawiczny atak zepchnął wojska Rakoczego w kierunku Żółkwi, doprowadzając w końcu do całkowitego rozbicia tylnej straży nieprzyjaciela.