靖难之役战争爆发后,徐祖辉带领南军攻打燕军,可以说胜多败少。最经典的两场战役就是白沟河之战和齐眉山之战。前者成功掩护南军重要将领李景隆成功撤退,后者斩杀燕军重要将领李斌大获全胜。此时恰逢天气暑热,北方燕军又损失一员大将,气势正值低迷。只要徐祖辉继续进攻,收复朱棣占领的北方失地指日可待。却不想建文帝听信了"北方燕军已经大败,京城中没有大将守护很危险"的谣言,要求徐祖辉迅速撤军回京,这就导致了北方的军队孤立无援全军覆没。
等到朱棣带兵占领了南京城后,徐祖辉没有选择去迎接朱棣,而是选择了在家等待。朱棣知道了这个消息后震怒,将徐祖辉关进监狱。过了几日朱棣登基为皇帝召见了徐祖辉,徐祖辉进了朝堂拒绝承认朱棣是正统皇帝。那震怒之下的朱棣为什么不杀了徐祖辉,只是将他的爵位革去呢?这其实有两个原因。
第一个原因就是徐祖辉手里有一张"子孙免死"的丹书铁劵,朱棣于情理之上并不能杀了他,如果杀了他会让很多的朝臣对朱棣有所怨言。第二个原因就是徐达的旧部将领还分散在全国各地,如果朱棣把徐达的孩子杀了,势必会造成全国各地的叛乱,出于这点他也不能杀徐祖辉。
基于这两点原因,使得朱棣不敢诛杀朱允炆旧臣徐祖辉。无奈之下只能让他回到家中,革去了他的魏国公身份并派人暗中监视。而徐祖辉也在永乐5年因病去世,享年四十岁。