從1399年末到1401年中葉是戰爭的開始階段,它主要限製在北京(北平)府的附近州縣和山東濟南附近的據點。戰爭正式開始於8月末,那時建文帝派遣耿炳文(約1339-1404年)這位退休的高級軍官為大將軍去平定叛亂。9月11日,耿炳文想把叛軍限製在北京附近,便在北京西南的真定部署了13萬人的大軍,但在兩個星期之後便受了重創,被打敗了。於是已故的將軍李文忠(1139-1184年)之長子李景隆接過了指揮權;但是,他也同樣無能。10月中旬,燕王離開他的封地去尋求新兵;李景隆便乘他不在北京的機會率領討伐軍從南京地區開往北京。他在11月12日合圍北京,但是燕王馬上回師並擊敗了李景隆;因為李景隆的士卒大多數是南方人,不耐北方的苦寒,因此他被迫在三個星期以後退兵到山東西北的德州。
12月6日,燕王又送了一封信給朝廷,指責齊泰和黃子澄。作為戰略上的姿態,皇帝正式罷免了他們兩人的官職,用茹瑺(1409年死)代替了齊泰。可是,事實上他繼續依靠他們出謀劃策。在1400年1月月中,燕王又在西北發動了攻勢,攻入山西;他在山西攻取了一個關鍵的府城之後就直趨首府大同。李景隆拖延了時日。當他的援兵在3月份到達大同時,燕王已經回師北京,李景隆便拖著疲憊和深受北方寒凍之害的軍隊返回德州。
1400年5月,雙方在北直隸中部保定附近的白溝河岸上展開了一場大戰。李景隆這一次想用鉗形攻勢一舉粉碎燕王的軍隊,但是他在5月14日因大暴雨和洪水而失敗了。四天以後,兩軍約60萬人馬打了一場對陣戰。李景隆的軍隊擁有火器裝備;但是他再一次受重創而潰敗,在5月30日先退到德州,然後又退到濟南。燕王現在卻受到平安將軍(1409年死)部下一支帝國騎兵隊伍的威脅;幸而他的次子朱高煦從北京率援軍來到才救他脫離了險境。6月1日,燕王恢複了攻勢,第一步進攻德州。
在開赴德州的途中他擊敗了李景隆勞頓不堪的軍隊,並於6月8日圍困了該城。德州由平安和盛庸(1403年死)防守;後者是帝國最能征善戰的將領之一。燕王對守軍的攻勢沒有取得什麼進展,而且在帝國軍隊手下連吃幾次敗仗,因為皇帝的部隊有時出城襲擊他的後方。9月4日,當燕王得知從南京正在開來一支救援部隊時,他解圍而去,退回了北京。皇帝的軍隊再次控製了德州。朝廷對李景隆的表現不佳感到沮喪,就在6月後期免了他的職,而以盛庸為大將軍來負責平定叛軍。在1400年秋天到1401年春天之間,燕王從逃離南京的宦官和將軍們那裏得了些消息,他便借此機會決定打一場消耗戰。他采用遊擊戰術,在北直隸的南部和山東西部進行一些牽製戰和佯攻戰,同時他找出了能繞過許多設防據點的南進路線。這就揭開了內戰的新的一頁。