明正统十四年(1449)秋,英宗朱祁镇亲征蒙古瓦剌,在土木堡(今河北怀来东南)突遭瓦剌军围攻,全军溃败的作战。
明朝建立后,元朝残余势力败退漠北,明太祖朱元璋修长城,设边镇,置卫所,有效地巩固了北部边防。成祖朱棣称帝后,抑制蒙古军事力量的发展。永乐十九年(1421),迁都北京后,撤销塞北军事重镇大宁(今内蒙古宁城西)、开平(今正蓝旗东北)诸卫,使北部防线南移数百里。蒙古贵族乘机扩展势力,分为瓦剌、鞑靼、兀良哈三大部,互争雄长。正统四年,瓦剌部首领也先嗣位,用武力迫使诸部服属。同时,表面与明朝互通贡市,请求通婚,以保和好;暗中刺探明朝虚实,寻机举兵,图谋恢复元朝统治。明朝北边守将察知瓦剌军蓄谋南攻,多次奏疏加强戒备,以防不虞。而太监王振操纵朝中大权,竭力粉饰太平,致使北部边备日懈。
正统十四年七月,也先以为攻明时机成熟,以明廷刁难其贡使和毁弃婚约为由,倾全力分四路大举攻明。命脱脱不花可汗率东路攻辽东,阿剌知院率中路攻宣府(今河北宣化),另遣一部为西路,攻甘州(今甘肃张掖),自率精骑攻大同。十一日,也先率师进至猫儿庄(今山西阳高西北),击杀大同参将吴浩。明廷闻败,命大同总督宋瑛、驸马都尉井源、总兵朱冕和左参将石亨各领兵万人出阳和口(今阳高西北)抵御。王振欲图边功,竭力怂恿英宗亲征,企图以势吓退瓦剌军。卜五日,英宗拒听兵部尚书邝埜、左侍郎于谦和吏部尚书王直等文武重臣再三谏阻,下令亲征,并命其弟郕王朱祁钰留守京师(今北京)。同日,阳和口之战,明军又败,宋瑛、井源、朱冕战死,石亨败逃大同,塞北城堡接连失陷。与此同时,阿刺部攻独石(今河北赤城北),破永宁城(今北京延庆东北),进逼居庸关。脱脱不花部围攻镇静堡(今辽宁黑山西北),遭明军抗击,撤围而去。
十六日,英宗和王振仓卒率领大军号称50万前往大同迎战。十九日,在进军途中,邝埜等群臣屡请回师,均遭拒绝。廿三日,至宣府。廿四日,也先侦知明军主力出征,且行阵如蚁,首尾难顾,遂佯装畏惧,主动北撤,隐伏塞外,纵明军兵骄,寻机待战。廿八日,明军至阳和(今阳高),目睹尸横遍野,将士惊恐。八月初一,师至大同,王振不见瓦剌军踪影,急欲北进,炫耀兵威。这时,镇守大同的太监郭敬密报王振,瓦剌兵势甚锐,且大同以北各地明军惨败,若继续北行,正中其计。王振遂定回师,命刘安为大同总兵、郭登为参将,镇守大同,掩护主力东撤。初三,明军开始按既定路线由蔚州(今河北蔚县)经紫荆关返京师。军行40里,王振擅改行军路线,令全军折向宣府,经居庸关而返。将士辗转宣府、大同间,饥渴疲惫。也先察知明军易道北行,指挥混乱,断定并非用计,立即改变设伏之策,发挥蒙古骑兵倏来忽往、灵活机动的特点,挥师突入长城,跟踪追击。十三日,追至宣府西侧,一举击败明军后卫吴克忠、吴克勤部。闻明成国公朱勇和永顺伯薛绶领兵4万来援,又迅速转兵,在明援军必经之地鹞儿岭(今河北涿鹿西北)设伏待机。
十四日下午,明军主力退至四面环山、水源缺乏的土木堡。其地道路不良,大军机动困难。王振以辎重未至,下令大军扎营等候。邝埜认为追兵不舍,形势危急,多次建议大军速入怀来卫城,均被王振拒绝。邝埜面见英宗,奏请车驾疾驱入怀来,以保安全。王振怒斥邝埜不知兵事,强令大军扎营。当晚,瓦剌军占领土木堡西北、西南要地,控制了堡南的唯一水源,对明军形成包围之势。十五日,也先遣使议和,行佯退之计,麻痹明军。明军断水二日,兵马饥渴难熬。英宗和王振急欲摆脱困境,遂遣使往瓦剌军营议和。王振下令全军移营觅水,人马争路,相互践踏,阵势大乱。也先乘机指挥精骑从四面入阵。明军惊恐,指挥失灵,加之临阵配发火器,不熟悉性能,未经几战即全军大溃,死伤数十万。英宗被俘,随征将臣张辅、邝埜等50余人阵殁,王振被护卫将锤杀。史称“土木之变”。
此战,明军大军麇集,辗转于宣府、大同间,致将士疲惫;扎营于群山之中,不便机动;且轻信议和,松懈戒备,导致大败,使明王朝一度危急。