Po bitwie pod Jarosławiem wydawało się, że armia szwedzka znajduje się potrzasku i że tutaj zakończy się „potop szwedzki”. Jednak Karol X Gustaw umiejętnie wycofał się zmierzając w kierunku Warszawy wzdłuż Sanu.
28 marca armia monarchy szwedzkiego stanęła pod Niskiem. Wygłodniali żołnierze rozeszli się po okolicznych wsiach w poszukiwaniu pożywienia. W obozie pozostali tylko chorzy i ranni ubezpieczani przez niewielkie straże. Czarniecki, wiedząc że od północy nadciąga pisarz polny litewski Aleksander Hilary Połubiński, postanowił zorganizować kombinowaną akcję przeciw armii szwedzkiej. W pobliskim lesie ukrył 2 tysiące chłopów z rusznicami, sam zaś z jazdą kwarcianą i pospolitym ruszeniem podszedł pod obóz królewski, na który uderzył wieczorem. W wyniku tego ataku straże zostały rozbite a jazda wpadła pomiędzy wozy i namioty. Ale Karol X Gustaw był czujny. Zebrawszy piechotę rzucił ją do kontrataku a jej silny ogień zatrzymał szarżę . Zagrożone oskrzydleniem wojsko Czarnieckiego musiało się wycofać spomiędzy namiotów. Na dodatek nastąpiło uderzenie oddziałów wysłanych po żywność w wyniku czego wstrząśnięta dużymi stratami, spowodowanymi ostrzałem piechoty szwedzkiej, polska jazda uszła z pola walki. Piechurzy chłopscy, odkryci przez Szwedów, dzielnie stawiali opór, w końcu jednak zostali wybici prawie co do jednego. Dzięki jednak temu poświęceniu zdołała uratować się jazda, dostając czas konieczny do odwrotu. Połubiński niestety spóźnił się na pole walki o 2 godziny, co przesądziło o wyniku bitwy. Starcie to wykorzystały ostatnie chorągwie kwarciane pozostające przy Szwedach, które wykorzystując zamieszanie przeszły na stronę Czarnieckiego.
Okazało się, wbrew nadziejom Jana Kazimierza i Czarnieckiego, że potop nie zakończy się tak szybko jakby sobie tego oni życzyli. Karol X Gustaw dzięki temu zwycięstwu spokojnie dotarł do wideł Sanu i Wisły, gdzie stanął wraz z armią 30 marca.