明英宗正統十四年(1449年),明朝跟北邊蒙古族的瓦刺部在貢市貿易上發生了矛盾。瓦刺首領也先,為了跟明朝擴大貿易,派出2000人向明朝貢馬,以換取金銀、綢緞、茶葉、鐵鍋等物。他想多得點賞賜,就以少報多,謊報來了3000人。當時明朝政府中掌握實權的太監王振,對也先的這種欺騙行為十分惱怒,說他欺騙朝廷,罪大惡極,因而僅給折合馬價五分之二的物品,還叫負責接待工作的禮部隻供給2000人的夥食,其餘的人不給飯吃。也先還想與明朝通婚,也被拒絕了。這樣一來,雙方就傷了和氣。瓦刺代表團回去以後,也先就積極衆劃用武力來威脅明朝。
當年7月,也先率領大隊兵馬南下。由於明朝政治腐敗,兵備產馳,邊界上的守軍接連戰敗,許多邊寨城堡落入敵手。一封封告急的戰報,猶如雪片似地飛向京城。朝廷本已派兵前去支援,但是太監王振犯了輕敵的毛病,他想建立奇功鞏固自己的地位;他又是山西蔚州(今山西蔚縣)人,很想讓明英宗能去光顧一下自己的家鄉,以便炫耀權勢,竟勸明英宗禦駕寒征,到前線去督戰。明英宗朱祁鎮雖然已是個20多歲的青年,但是他生長在宮廷之中,未見過世麵,對這種舉足輕重的大事根本沒有主見,聽任王振擺布,竟糊裏糊塗地同意禦駕親征。文武大臣們知道皇帝禦駕親征是件非同小可的事,都紛紛前來勸諫,可是王振一意孤行,把大臣們的諫言全都擋回去了。
7月17日,明英宗和王振帶著精心挑選過的50萬大軍,出發親征,把留守北京的任務交給了英宗的弟弟郎王朱祁鈺。
這次禦駕親征是在事先未作充分準備的情況下舉行的,軍糧和武器裝備都是臨時湊集,不夠充足;士兵雖然經過挑選,但是缺乏足夠的訓練,將帥和士兵平日毫無聯係,根本無法指揮。嚴格地說,這支50萬大軍其實隻是烏合之眾,經不起戰爭考驗的。當時氣候條件也很差,大軍一出居庸關,就遇上風雨。從懷來到宣府(今河北省宣化縣)一路都是風雨交加,道路泥濘,很不好走。士兵們又困又餓,不少人病倒了,有的因心慌腿軟,滾落山崖,送了性命。戰爭還未開始,隊伍就蒙受了不少損失。許多隨行大臣又一次上章勸諫,希望皇上能回心轉意,取消這次禦駕親征。但是奏章又都被王振擋回去了。王振甚至還用嚴酷的刑罰處分反對禦駕親征的人,或者加以鞭打,或者押著他們遊街示眾。
大軍到達山西大同時,士兵餓死累死病死的很多,另有不少士兵半路開了小差,50萬大軍已損失了三分之一。按理這時候應當停下來,整頓一下隊伍了,可是王振根本不當一回事,他仍然挾持著明英宗,命令軍隊繼續往前趕路。
再說瓦剌的首領也先,開始他聽說明英宗帶了50萬大軍禦駕親征,嚇了一跳,等到偵探向他報告明軍的實際情況後,他不禁哈哈大笑,認為這一下打擊明朝的機會來到了。他立刻調兵遣將,設下埋伏,專等明軍的到來。當明軍的一支先頭部隊剛剛進入他們的埋伏圈時,也先一聲令下,瓦剌軍就團團加以包圍,經過激烈戰鬥,明軍先頭部隊全軍覆沒。首戰失利的消息傳到明英宗那裏,嚇得他目瞪口呆。王振一下子也沒了主意,趕快下令退兵。
俗話說,兵敗如山倒。上頭既然下令退兵,下麵的士兵就撒開腿拚命往回奔跑逃命,又有不少人趁機開了小差,50萬大軍剩下沒有多少人了。王振帶著明英宗,在衛兵的保護下往回撤退6當他們來到離懷來縣20裏地的土木堡時,也先率領的瓦剌軍趕上了他們,把他們緊緊包圍了起來。在突圍的混戰中,王振被打死,明英宗做了俘虜。
也先俘獲明英宗以後,氣焰更為囂張,他以明英宗為人質,向明朝政府要挾勒索,並率領大隊人馬,四出燒殺搶掠,前鋒很快突破北京外圍防線,直逼北京。
英宗被俘的消息傳到北京皇宮,皇太後聽了嚇得幾乎昏厥過去,留守的文武大臣聽了猶如死了父母一般放聲大哭起來。大夥兒正在鬧得在不可開交的時候,人群中突然站出來一個人大聲說:“請大家安靜一下。皇上既已蒙塵,當今之計,一是趕快擁立新君,以絕也先要挾陰謀;二是應當從速處理罪魁禍首及其餘黨,以鼓舞士氣;三是必須鞏固京師城防,抗禦瓦剌入侵。”大夥兒定睛一看,原來說話的人是兵部侍郎於謙。
經於謙一提醒,大夥兒才覺得造成事端的罪魁禍首王振確實十分可惡,他雖然已經死了,也應當派人去抄沒他的家產,並處分他的同黨。大夥兒也都認為國家不可一日無主,都要求皇太後趕快立一新君。至於如何保衛北京,防備瓦剌入侵,則大夥兒一時都還拿不出主意來。朝廷上大臣們對如何防備瓦剌入侵北京的問題,出現了兩派意見:以侍講為首的一夥人認為北京無險可守,根本無法保衛,最保險的辦法還是南遷留都(即南京)為好;以於謙為首的抗戰派則認為京師乃天下根本,千萬不能放棄。否則,根本動搖,整個天下將會無法收拾。經過激烈辯論,多數人讚同於謙的意見,認為北京應當守住,決不能放棄。