瓦剌军在德胜门和西直门受挫后,又在彰义门策动打击。于谦命武兴、王敬、王勇率军迎战瓦剌军。明军神铳、弓矢、短兵前后接踵,挫败了敌军的前锋。但明军本身也乱了方阵,瓦剌军乘机反击,明军败退,武兴中流矢死。瓦剌军追到土城,土城一带的住民掷砖投石,隔绝了瓦剌军的打击。明救兵赶到,瓦剌军仓促逃脱。
而打击居庸关的5万瓦剌军,因气候酷寒,明守将罗通打水灌城,墙壁结冰,瓦剌军没法打击。颠末7天的战役,瓦剌军的打击均被击退。罗通三次出关追击,斩敌无数。也先又听申明救兵将集,恐断其归路,遂于十月十五日夜命令北退。于谦命明军乘胜追击,二十四日、二十五日明军在霸州(今河北霸县)、固安等地大败瓦剌军。至十一月初八日,瓦剌军退出塞外,京师得救。京师保卫战获得了光辉的胜利。
初九,也先抵紫荆关亲身督战。投降瓦剌军的明朝寺人喜宁熟知紫荆关关防摆设,指导瓦剌军偷越山岭,腹背夹攻关城,守将韩青、孙祥战死,紫荆关被攻破。瓦剌军便由紫荆关和白羊口两路进逼北京。
十月十一日,瓦剌军到达北都城下,布阵西直门外,把英宗置于德胜门外空房内,诡计迫使明军献城。于谦暂隐主力,采取小部兵力到处攻击,搅乱敌军。当天早晨,高礼、毛福寿在彰义门北迎击瓦剌军,杀敌数百人,军威大振,迫使瓦剌军不敢冒然打击。也先采取喜宁的建议,借媾和诱于谦等人前去迎驾,乘机擒获,明军将无首而溃。于谦一方面派王复、赵荣去瓦剌虎帐进见英宗,另一方面针对朝廷有些人想媾和的心机提呈现在尽管备战,其他一概不闻。也先媾和的诡计没有得逞。
于谦,明钱塘(今浙江杭州)人,字廷益,号节庵。永乐进士,宣德初授御史,曾随宣宗弹压汉王朱高煦之叛。出按江西,颂声满道。宣德五年(1430年),以兵部右侍郎巡抚河南、山西。正统十一年(1446年)遭王振等毒害下狱论死,后因两省百姓官吏乃至藩王力请复任。十四年土木之变,明英宗被瓦剌俘获,他力排南迁之议,坚请恪守,进兵部尚书。代宗立,整饬兵备,摆设关键,亲身督战,率师二十二万,布阵北京九门外,破瓦剌之军。加少保,总督军务。也先挟英宗逼和,他以社稷为重君为轻,不准。也先以无隙可乘,被迫开释英宗。英宗既归,仍以和议难恃,择京军精锐分十团营练习,又遣兵出关屯守,边疆以安。当时朝野多事,乃独运征调,悉合机宜,号令明审,片纸行万里外无不惕息。他忧国忘身,口不言功,自奉俭省,所居仅蔽风雨,但性固朴直,颇遭众忌。天顺元年(1457年)英宗复辟,石亨等诬其谋立襄王之子,被杀。
正统十四年(公元1449年)初,也先遣使2000人向明朝贡马,诈称3000人,企图冒领赏物。明廷按实际人数给赏,并减少了马价。也先闻悉大怒。七月,也先率领所部打击明朝,本身带领人马攻打大同。当时明朝寺人王振擅权,他挟英宗仓促亲征。八月初,英宗带领50万雄师前去大同迎战。刚至大同,王振传闻各路军马接连失利,仓猝退兵至四周环山的土木堡(今河北怀来境内),被也先追至,从征官员和兵士死伤过半,英宗被俘,史称“土木堡之变”。