灵璧之战后,燕军向东南方向直线前进。五月初七下泗州,朱棣谒祖陵。盛庸在淮河设下防线阻碍燕军渡河,朱棣在尝试取道淮安、凤阳受阻后,遣朱能、丘福率士兵数百人绕道上游乘渔船渡河,五月初九从后方突袭盛庸,盛庸败走。燕军遂克盱眙。五月十一日,燕军向扬州方向前进,五月十七日,到达天长(扬州西北50公里)。守扬州的监察御史王彬本想抵抗,但属下反叛,趁其沐浴时绑缚之。五月十八日,扬州不战而降。随后高邮归降。
五月二十二日,朱允炆遣庆成郡主(朱元璋的侄女、朱棣的堂姐)与朱棣谈判,表示愿意割地。朱棣说“此奸臣欲姑缓我,以俟远方之兵耳。”郡主无言以对,遂返。六月初一日,燕军准备从浦子口渡江,但遇到了盛庸最后的抵抗。燕军战不利,朱棣打算议和北还。此时朱高煦引兵来援,朱棣非常高兴,说“努力罢!世子常常生病啊。”暗示朱高煦有机会取得储君宝座,于是朱高煦大受鼓舞,率众殊死战,击败盛庸。随后中央军的一支水军部队降燕,燕军遂于六月初三日自瓜洲渡江,并再次击败退守此地的盛庸。六月初六日,燕军至镇江,守将率城投降。
六月初八,燕军驻扎于龙潭(距京师金陵东约30公里),朝廷大震。朱允炆徘徊殿间,召方孝孺问计。有人提议逃往内地以图兴复,方孝孺表示城中尚有二十万兵,应坚守待援;即使真战败,国君为社稷而死,是理所应当的。可以再派大臣、在京诸王前往谈判以拖延时间。于是六月初九,派李景隆、茹瑺等见朱棣,再次谈判;朱棣表示割地无名,只要奸臣。六月初十,遣谷王朱橞(建文元年逃回京城)、安王朱楹等第三次前往谈判,无果。六月十二日,外出募兵的大臣们仍未返回,朱允炆只得派在京诸王和武臣们守卫各门。时左都督徐增寿(徐达子,辉祖弟)谋内应,被一群文官围殴。次日(1402年7月13日),燕军抵金陵。徐增寿作内应,事败,被朱允炆亲自诛杀于左顺门。守卫金川门(位于南京城西北面)的朱橞和李景隆望见朱棣麾盖,开门迎降。
燕王进入京城,文武百官纷纷跪迎道旁,在群臣的拥戴下即皇帝位,是为明成祖,年号永乐。历时四年的“靖难之役”以燕王朱棣的胜利而告终。