Rozpoczęła się walka ogniowa, w której zdecydowana przewagę uzyskała artyleria szwedzka. Pod osłoną swych dział Stenbock przerzucił po niewykończonym moście rajtarów, którzy osłonili budowę szańca chroniącego budowany most na drugim brzegu. Następnego dnia budowa szańca została ukończona, a nocą dokończono budowę mostu.
Rankiem 30 września armia Stenbocka przeprawiła się przez Bugonarew i rozwinęła szyk bitewny. Pod osłoną potężnej artylerii Szwedzi ruszyli do natarcia. Rozpoczął się bój, który toczył się w rejonie dzisiejszego Stanisławowa, Modlina - dzielnicy Nowego Dworu Mazowieckiego i Nowego Modlina. Przewaga ogniowa Szwedów sprawiła, że Mazurzy musieli stopniowo wycofywać się na północ. Odwrót ten połączony był z walką obronną w oparciu o przeszkody terenowe. Duża ruchliwość wojsk polskich pozwoliła im w krytycznym momencie z łatwością oderwać się od Szwedów, którzy nie byli w stanie przeprowadzić skutecznego pościgu. Straty polskie były stosunkowo niewielkie - około 300 zabitych, 7 dział i 500 wozów taborowych.
Następnego dnia część szlachty próbowała nawet odebrać Szwedom zdobyte wozy, jednak bez powodzenia. Wkrótce po wygranej bitwie Szwedzi zdobyli Pułtusk.