Az 1849. évi tavaszi hadjárat az 1848/49-es szabadságharc során a Magyar Honvédség egyik, ha nem a legdicsőségesebb időszaka. Az ország nagy része felszabadult a császáriak ellenőrzése alól: a magyar seregek felmentették Komáromot, felszabadították Budát – a szabadságharc visszanyerte bázisát.
Az 1849. február 26–27-i kápolnai csatát követően a kezdeményezés a császári haderő kezébe került. Windisch-Grätz herceg azonban nem használta ki a győzelem előnyeit, nem próbálkozott meg a Tiszán való átkeléssel. Egy, a magyar sereg üldözésére indított hadtest március 2-án Poroszló elé vonult, de nem mert támadni. Bár a hídfőt gátak és mocsarak védték, a települést csak Görgey két hadosztálya tartotta megszállva. Visszatekintve ez lehetett volna az egyetlen lehetőség a császári erők számára a kápolnai győzelem kihasználására, még ha az átkelés nagy áldozatokkal járt is volna.
A támadás helyett Windisch-Grätz visszarendelte csapatait, mivel attól tartott, hogy amíg hadzöme a Tisza vonalát támadja, addig a Szolnok és Szeged között lévő, ismeretlen erejű magyar sereg megsemmisíti a főerőktől izoláltan, a Duna-Tisza közén álló Jelačić-hadtestet. Ez a feltevése egyébként be is igazolódott.
A császári hadvezér nem látta át a helyzetet, nem tudta eldönteni, merrefelé halad a magyar fősereg. Így egy-egy hadosztálya Vácot, Hatvant, Jászberényt és Ceglédet szállta meg. Egy rajtaütés során Görgey egyik különítménye megfutamított egy 1000 főből álló hírszerző alakulatot, amelynek parancsnoka a támadók létszámát 6000 főre becsülte (a valóságban 800 fő volt csupán). Mivel a magyar főerők holléte még mindig nem volt biztos a császári csapatok számára, Windisch-Grätz erőszakos felderítésre küldte Schlik III. hadtestét, melynek április 1-én Bagra, 2-án Hatvanba, majd Gyöngyös felé kellett előrenyomulnia.
Március 29-én a magyar fősereg ismét átkelt a Tiszán, és a Miskolc–Eger–Gyöngyös úton összpontosult. Összesen 53 gyalogosszázadból, 71 huszárszázadból, 24 ütegből állt, s összesen közel 51000 főt tett ki; vezetését március 31-én – Vetter gyenge szereplése miatt – ideiglenesen Görgey Artúr honvédtábornok vette át. A császári fősereg 43 gyalogoszászlóaljból, 56 lovasszázadból, 41 és fél ütegből, összesen kb. 50 000 főből állt. Az erőviszonyok tehát kis híján egyenlők voltak.
Az Április 4-én a kialakult ütközetbe délután Damjanich III. hadteste is bekapcsolódott, így a magyar csapatok győzelmével zárult a küzdelem. Windisch-Grätz még mindig nem ismerte a magyar erők helyzetét és létszámát. A császári II. hadtest egy hadosztálya Vácott maradt, Schlick hadteste Gödöllőre, Jelačić pedig Isaszegre vonult. Itt került sor a tavaszi hadjárat első szakaszának döntő csatájára. A tét nagy volt mindkét fél számára. Ha a magyar fél győz, akkor a cs. kir. erők kénytelenek vagy Vácra, vagy Buda-Pestre visszavonulni. Ha viszont az osztrák fél győz, úgy a magyar erők kénytelen lesznek visszavonulni a Tisza mögé, s teljes biztonsággal csak azt lesznek képesek megvédeni.
A magyar hadsereg egy kb. 22 km szélességű és mélységű arcvonalon állt fel – így bármelyik veszélyeztetett pontra könnyen átdobhattak kellő számú erőt. Ezzel szemben Windisch-Grätz erői 54 km széles, 30 km mély frontvonalat szálltak meg, így a császári sereg összpontosítására egy nap sem volt elegendő.
A Gáspár András vezette VII. hadtest 1849. április 6-án, délután fél egy körül érte el a Galga vonalát Aszód és Bag térségében (Isaszegtől északkeletre), s megszállta Bagot és Turát. A Kmety-hadosztály a térségben beleütközött Schlick lovasságába, amely harc nélkül visszavonult Gödöllőre. Mivel Gáspár teljesítette aznapi menetfeladatát, a csata napján nem fejtett ki több aktivitást.
Nagyjából ezzel egy időben Damjanich III. és Klapka I. hadteste elérte a települést félkörben körülvevő erdő (Királyerdő) keleti szegélyét. Damjanich egységei megtámadták Jelačić utóvéddandárjait, amelyek az erdőn keresztül vonultak vissza Isaszeg felé, maguk mögött több ponton felgyújtva az erdőt. Ezután Klapka csapatai is támadásba lendültek, s Zákó István őrnagy vezetésével egészen a faluig törtek előre. Bent a faluban azonban már érvényesült az ellenség számbeli fölénye. Jelačić három gyalog- és egy lovasdandárja lendült támadásba, ennek pedig Zákó emberei nem tudtak ellenállni, kénytelenek voltak kiüríteni Isaszeget, s súlyos veszteségeket szenvedve vonultak vissza a Királyerdőbe. A visszavonulók beleütköztek Bobich János alezredes éppen felfejlődő dandárjába. A 28. zászlóalj (mely Bobich dandárhoz tartozott) sorai felbomlottak, így a támadó cs. kir. csapatok teljesen váratlanul érték őket, gyorsan számottevő veszteségeket szenvedtek. A mögöttük sorakozó két zászlóalj már állta a sarat, visszaverték az ellenség támadását. A 47. zalai honvédzászlóalj ezután megindult, s az erdőbe benyomuló vadászokat űzte ki az erdőből. A Királyerdő szélénél tovább azonban nem jutottak, mert az Isaszeg melletti magaslatokon időközben horvát határőr-alakulatok sorakoztak fel, s lőni kezdték a támadó magyarokat. Ez délután két óra tájban történt.
Ugyanebben az időben Damjanich III. hadteste is elérte a Királyerdő szélét, a szerb származású tábornok rögtön látta Klapka csapatainak veszélyeztetett helyzetét. Ezért Knézic Károly egyik dandárját az erdő északi kiszögelléséhez küldte, egy másikat Klapka megsegítésére. A tüzérségét is felállította egy dombon, lovasságát pedig az erdő egyik hajlatában, Isaszegtől keletre állította fel. Egyúttal felszólította Aulichot, hogy hadtestével azonnal induljon el Isaszeg felé.
Idáig a magyar hadtestek egymástól függetlenül verekedtek, mindegyik hadtestparancsnok a „saját feje után” ment. Délután három órakor azonban megérkezett a csatatérre Görgey Artúr honvédtábornok, aki még indulásakor felszólította Aulichot az indulásra. A II. hadtest ekkorra azonban már Isaszeg felé masírozott, a fővezér össze is találkozott velük a Királyerdő szélén. Görgey Kókán vette kézhez egy huszártiszttől a jelentést, mely szerint a csata elkezdődött, és szerencsétlen fordulatot is vett. Ekkor a fővezér azonnal a csatatér felé indult.
Megérkezvén a harcmezőre, megkapta Gáspár jelentését is, miszerint a VII. hadtest elérte a Galga vonalát. Egy téves jelentés miatt úgy tudta, hogy Gáspár csapatai is támadásba lendültek, s úgy gondolta, képes megverni a vele szemben álló császári csapatokat. Ehhez csupán annyi szükségeltetett, hogy Damjanich tartson ki, Klapka pedig indítson támadást, vegye be Isaszeget. Ezzel bekeríthették volna a császári erőket.
Mivel Klapka visszavonult, a frontvonal egy része védtelen maradt; a beérkező II. hadtest feltöltötte a rést, valamint megerősítette a másik két hadtestet. Maga a fővezér Klapka csapataihoz sietett. Jelenléte fellelkesítette a honvédeket – pedig azzal kezdte, hogy jól leszidta a hátrálókat. Miután megtudta, hogy a hadtest Klapka utasítására kezdte meg a visszavonulást, a hadtestparancsnokot kereste fel. Klapka azzal érvelt, hogy emberei kimerültek, és elfogyott a lőszerük is; később kiderült, valóban elfogyott a lőszer: olasz hadifoglyok a lőporos zacskókba homokot töltöttek, így sorra dobálták el a zacskóikat. Mindenesetre Görgey azzal érvelt, hogy Klapka
„gyalogsága a hátrálásban mutatott gyorsaságáról ítélve nem látszik annyira kimerültnek, hogy még néhány szuronytámadást meg ne kísérelhessen, ehhez pedig akkor is elegendő a tölténye, ha igazán mindet ellőtte.”
Ezután még hozzátette:
„Ma kell győzni, vagy mehetünk vissza a Tisza mögé!”
Klapkára hatottak Görgey szavai, s ismét támadásra utasította csapatait.
A Schlick-hadosztály eközben mind erősebb rohamokat intézett Damjanich alakulatai ellen. Amikor megérkezett az Aulich által küldött segítség, némi zűrzavar támadt: Aulich egyik zászlóalja császári egyenruhát viselt, emiatt Damjanich egyik zászlóaljának tagjai rájuk is lőni kezdtek. A lövöldözést Görgey és Damjanich zárta rövidre.
Damjanich az erősítéssel számbeli fölénybe került Schlickkel szemben, azonban a zászlóaljak hadrendje annyira felbomlott, hogy lehetetlen volt őket rohamra vezetni, csak az állások megvédését láthatták el. Éppen ezért a jobb szárnyon este 11 óráig nem állt be változás.
Ugyanez nem volt igaz a bal szárnyra: este 7 óra körül Klapka egy „Előre!”-felkiáltással megindította hadtestét. Rövid idő alatt bevették Isaszeget, majd a Rákos-patak jobb partján lévő ellenséges állásokat támadták.
Windisch-Grätz 9 óra tájban kénytelen volt kiadni a visszavonulási parancsot, mivel arra következtetett, hogy a támadó erők Buda-Pesttől igyekeznek őt elszorítani.
A csatát követően Görgey bizonytalan volt az elért eredményeket illetően, hiszen a jobb szárnyon a helyzet késő estig nem dőlt el, ahogy a hadközépen sem volt nagyobb, döntő jellegű összecsapás. Emiatt a balszárnyra sietett, ahol Aulich jelentette neki, hogy Jelačić Gödöllő felé hátrál.
„Miénk a győzelem!”
– mondta ekkor Görgey.
A csata magyar győzelemmel zárult. Ehhez természetesen Windisch-Grätz hozzá nem értése is kellett, hiszen egészen a csata napjáig nem tudta, hol tartózkodnak a magyar főerők.