当朱祁镇土木堡被俘的消息传到北京后,朝野上下惊惶失措,一个个吓得六神无主,京城内顿时人心惶惶。这时候,以徐有贞为首的一些大臣主张立即南迁,整个朝廷处于动荡不安之中。就在这生死存亡之际,时为兵部侍郎的于谦以“宋朝南迁”的故事反对迁都,还力主“国不可一日无君”,并向皇太后分析了迁都的种种利害,最后终于说服了皇太后。吏部尚书王直、内阁学士陈循等人也都赞同于谦,廷议于是决定固守北京。为了安定人心,皇太后立即下旨立朱祁镇的弟弟朱祁钰为君,是为明代宗,年号景泰(故明代宗又称景泰帝),成为明朝的第七位皇帝。
明代宗朱祁钰即位后,立即封于谦为兵部尚书,并授予重任。为何要拥立朱祁钰即位呢?原来于谦是这样想的:首先,也先的阴谋不能得逞,又便于统一部署,共同抗击瓦剌;再次,举荐人才,调兵遣将,妥善安排。于谦注意提拔一批有才能的将领。同时,从各地调来勤王兵,不分昼夜地赶造武器,装备军队。同时,在北京周围还布置兵力,严把九门,注意日夜操练军队,迅速地提高战斗力。这样,逐步形成了一个依城为营,以战为守,分调援军,内外夹击的作战部署,准备与瓦剌军决战于北京城下。
正统十四年(1449年)十月初一,瓦剌首领也先率一路兵马,经过大同、阳和等地,并占领紫荆关,长驱进入北京地区。十月十一日,瓦剌军逼近北京,也先将军队布置在西直门以西。于谦派兵迎击瓦剌军于彰义门,打败也先部队先锋,夺回被俘者一千多人。同时于谦又派人率兵夜袭,以疲惫敌军。十月十三日,瓦剌军趁风雨大作,进攻德胜门。于谦命大将石亨在城外民房内埋伏好军队,然后派遣小股骑兵佯败诱敌。也先果然中计,亲率大批部队穷追不舍。等也先军进入埋伏圈后,于谦一声令下,明军开始反击。只见神机营火器齐发,火箭弓弩多如飞蝗般地射向敌军,明军前后夹击,也先部队大败而逃。
瓦剌军受到致命的打击之后,也先发觉明军主力在德胜门,便集中力量转攻西直门。都督孙镗率军迎战,打败也先的先头部队。由于也先不断增兵围攻孙镗,孙镗力战不支,退至城下。此时,把守城头的给事中程信,严令不准开城。同时,命城上守军发神炮,火箭轰击瓦剌军,明军又从彰义门、德胜门抽兵增援,终于打退了瓦剌军的进攻。
第二天,瓦剌军又改为进攻彰义门。于谦命守军将城外的街巷堵塞,在重要的地带埋伏好神铳手、短枪手,又派兵在彰义门外迎战。明军前队用火器轰击敌军,后队由弓弩压阵跟入,击退了瓦剌军的进攻。而此时,明代宗朱祁钰所派监军太监,率数百骑兵冲击敌阵去抢功,使明军阵势陷入混乱。瓦剌军乘势反击,追到德胜门外。在万分危急关头,当地居民纷纷登上房顶,以砖石迎战瓦剌军。于谦派出的援军也及时赶到,打退了瓦剌军的反扑。
也先在进攻北京的过程中,到处遭到军民的抵抗和不断袭击。各地的百姓自动组织起来,抗击瓦剌军的掠夺。北方边陲重镇的守兵,也抱着与城共存亡的决心,誓死保卫国土。也先进攻北京各门屡次遭到失败,中路军在居庸关的进攻也受挫,并获悉明朝各援军即将到达。唯恐后路被切断,便于十五日夜率一部人马,挟持朱祁镇由良乡(今北京市房山)向紫荆关撤退。
于谦发现也先军队正在撤退,即命令石亨等集中火炮轰击也先军营,炸死瓦剌军一万余人。瓦剌军在撤退的路上,一路烧杀抢掠,掠夺了许多物资和人口。而明军分路追击;石亨大破瓦剌军于清风店(今河北易县西),范广在固安打败瓦剌军。也先一路狂逃,十月十七日,撤出紫荆关,不久退往关外。东路的脱脱不花军,闻得中路、西路已败,亦立即撤退,并于十月二十日单独遣使进贡,来北京议和。至此,明军取得了保卫北京的胜利。
也先率军退至塞外,数次南下,都因明军防范严密而未得逞。鉴于政治诱降落空,军事进攻又遭失败。在长期的战争中,损失了大量的人力和物力,又失去了与明朝经商的机会。万般无奈之下,于景泰元年(1450年)八月,无条件地释放了明英宗朱祁镇。其后,在蒙古族内部的相王争斗中,也先的势力一落千丈,日渐衰竭。
北京保卫战是明朝历史上的一次壮举,它粉碎了也先图谋中原的企图,同时也是英雄于谦人生中的一大亮点。