根据敌我双方的军事力量和也先的气焰,于谦估计,也先一定不会就此罢兵,他向景帝慷慨泣奏说:“也先得志,留住大驾,势必轻我中朝,长驱深入,不可不预为计。前各营精锐,尽遣随征,军资器械,十无存一。应当赶快遣官四出,招募官舍余丁义勇,集合附近居夫,用他们换下沿河漕运官军,而让这些漕运官军全部隶归神机营等,操练听用。并令工部齐集物料,内外局厂昼夜加工,制造攻战器具。京师九门,宜派都督孙镗等人带领士兵,出城守护,列营操练,以振军威,并选派给事中、御史等官,分出巡视,勿致疏虞。迁城外居民于城内,随地安插,避免瓦剌兵的掳掠。通州坝上仓粮,不可丢弃以资敌寇,令各官自行到仓支取月粮,方为两得。至于军旅之事,臣身当之,不效则治臣之罪。”他的这些建议,切实可行,措置有方,景帝都采用了。
十月,也先挟带英宗,攻破紫荆关,明朝守将战死。也先麾军入关,直指北京城。面对强大的敌人,主将石亨主张尽闭九门,坚壁以避敌锋。于谦坚决反对,他说:“敌人气势嚣张,而我为何又先示弱,使其更加轻视于我?”他分遣诸将列阵于九门之外,下令尽闭各城门,以示明军誓与京城共存亡的抗战决心。他把自己安排在北面的德胜门外,和石亨一起,抵挡敌人的正面进攻。部署已定,于谦传令九门:“临阵将不顾军先退者,斩其将;军不顾将先退者,后队斩前队。”于是,将士人人效命。于谦本身戴盔披甲,亲临战阵巡视指挥,以自己的行动激励将士勇敢作战,保卫首都。十月十三日,瓦剌军攻德胜门。于谦令石亨带兵埋伏在民间空屋里,然后派数骑诱敌。瓦剌1万多名骑兵追击进入埋伏圈后,一声炮响,伏兵四出,火器齐发,瓦剌军人仰马翻,大败而逃。也先的弟弟孛罗和瓦剌的平章卯那孩都中炮身死。瓦剌军转攻其他城门,同样受到明军的坚决抗击。在德胜门北面土城的战斗中,明朝军民配合作战,使瓦剌军又吃了一个大败仗。当明军和瓦剌军在激战时,土城老百姓纷纷爬上屋顶,以砖石为武器,铺天盖地般地投击敌人,喊杀声震天动地。两军相持了五天,瓦剌军四面楚歌,连战皆败。也先本想拥着明英宗,逼明朝城下议和,捞取金银财物,没想到一个子儿也没捞到,反倒损失了许多人马,又听说明朝的各路援兵快要到了,恐怕归路被切断,于是,又拥着明英宗匆匆撤围西去。于谦指挥军队乘胜追击,夺回了瓦剌沿途掳获的许多百姓和财物。北京保卫战取得了辉煌的胜利。