公元1449年七月,也先大舉進犯,王振慫恿明英宗親征,于謙和兵部尚書鄺埜極力勸諫,但明英宗不听。
鄺埜跟隨明英宗管理軍隊,留于謙主持兵部的工作,待到英宗在土木堡被俘,京師大為震驚,大家都不知道該怎麼辦。
此時郕王監國,命令群臣討論作戰和防守的方略,侍講徐有貞說星象有變化,應當遷都南京,于謙厲聲說︰
「提議南遷的人應當斬首!京師是天下根本,只要一動便大事去矣,難道不見宋朝南渡的故事嗎?」
于謙力主抗戰,得到吏部尚書王直、內閣學士陳循等愛國官員的支持,郕王肯定了他的說法,防守的決策就這樣定下來了。
當時京師最有戰斗力的部隊、精銳的騎兵都已在土木堡失陷,剩下疲憊的士卒不到十萬,人心惶惶,朝廷上下都沒有堅定的信心。
于謙請郕王調南北兩京、河南的備操軍,山東和南京沿海的備倭軍,江北和北京所屬各府的運糧軍,立即奔赴順天府,依次經營籌畫部署,人心遂稍稍安定。
隨後,于謙升任兵部尚書,全權負責籌劃京師防御,郕王剛剛攝政朝議時,右都御史陳鎰上奏請求誅殺王振全族,廷臣一時紛紛響應。
朱祁鈺無法做決定,于是下令擇時改議,廷臣則抗議不依,此時王振黨羽、錦衣衛都指揮使馬順站出叱斥百官。
戶科給事中王竑突然帶頭在朝廷上猛擊馬順,眾臣紛紛跟隨,馬順當即斃命,一時血濺朝堂,而士卒亦聲洶欲誅。
郕王朱祁鈺看後大懼,欲起身離去,于謙擠到郕王身前,扶臂勸導道︰
「馬順等人罪該誅死,打死勿論!」
眾人听後方止,而此時于謙的袍袖已經裂開,在他退出左掖門時,吏部尚書王直握著于謙的手嘆道︰
「國家正是倚仗您的時候,今天這樣的情況,即使是一百個王直也處理不了啊!」
在那時,朝廷上下都倚重于謙,而于謙亦毅然以社稷安危為己任。
當初,大臣擔憂國家沒有君主,太子年幼,敵寇將至,請皇太後立郕王為皇帝,郕王再三推辭,于謙大聲說︰
「我們完全是為國家考慮,不是為個人打算。」
郕王于是受命,九月,郕王即帝位為代宗,于謙進去回答問話,情緒激昂地哭著說︰
「敵寇得意,要挾持扣留太上皇,這樣形勢下他們必然輕視中國,長驅南下,請命令各邊境的守臣竭力防守遏制。
京營士兵的器械快要用完了,需要馬上分道招募民兵,令工部制造器械盔甲。
派遣都督孫鏜、衛穎、張輒、張儀、雷通分兵據守九門重要的地方,軍隊駐扎在外城的外面。
都御史楊善,給事中王竑亦參與這些事,遷徙外城附近的居民進入城內。
儲存在通州的糧食,令官軍自己去支領,用裝足的米作為代價,不把糧食留給敵人。
文臣像軒倪這樣的人,應該用為巡撫,武臣像石亨、楊洪、柳博這樣的,應該用為將帥,至于軍隊里面的事情,我自己承擔,沒有成效就判我的罪。」
對他的意見,明代宗全都認真地接納了,十月,敕令于謙提督各營軍馬,而也先挾持著英宗攻破紫荊關直入,進窺京師。
石亨建議收兵固守使敵兵勞累衰竭,于謙不同意,說︰
「為什麼向敵人示弱,使敵人更加輕視我。」
馬上分別調遣諸將帶領二十二萬兵士,在九門外擺開陣勢︰
都督陶瑾在安定門,廣寧伯劉安東直門,武進伯朱瑛朝陽門,都督劉聚西直門,鎮遠侯顧興祖阜成門,都指揮李端正陽門,都督劉得新崇文門,都指揮湯蘆宣城門,而于謙自己和石亨率領副總兵範廣、武興在德勝門外列陣,抵擋也先。
把兵部的事交給了侍郎吳寧,把各城門全部關閉,自己親自督戰並下令︰
臨陣將領不顧部隊先行退卻的,斬將領,軍士不顧將領先退卻的,後隊斬前隊。
于是將士知道必定要死戰,都听命令,副總兵高禮、毛福壽在彰義門北面抵擋敵人,俘虜了一個頭目。
明代宗高興,令于謙選精兵聚集在教場,以便調動,再命太監興安、李永昌同于謙一起管理軍務。
當初,也先部隊深入,以為早晚就可以攻下京城,及至見到明朝官軍嚴陣以待,有些喪氣。
叛變了的宦官喜寧教唆也先邀明朝大臣迎接上皇,索取黃金和絲織品以萬萬計,又邀于謙及王直、胡等出城談判。
明代宗不準許,也先更加沮喪,庚申,也先部隊窺伺德勝門,于謙令石亨率神機營在空屋里設下埋伏,派幾個騎兵引誘敵人。
敵人用一萬騎兵逼近,副總兵範廣發射火藥武器,伏兵一齊起來迎擊。
也先的弟弟孛羅,平彰卯那孩被炮打死,也先部隊轉移到西直門,都督孫鏜抵御他,石亨亦分了部分兵力來到,敵寇撤退。
副總兵武興在彰義門攻打敵軍,和都督王敬一起挫敗了也先的前鋒。
敵軍正要退卻,而幾百個騎著馬的宦官想爭功,沖馬爭著向前,陣腳亂了,武興被亂發的箭射死。
寇兵趕到土城,居民爬上屋頂,呼喊著用磚石投擲敵人,喧聲震天,王竑和福壽的援兵趕到,敵軍于是撤退。
相持了五天,也先邀談不成,作戰又失利,知道不可能達到目的,又听說各地勤王的部隊馬上要開到,恐怕截斷了他的歸路,于是擁著英宗由良鄉向西去。
于謙調各將領追擊,到居庸關才回來,評功加于謙少保、總督軍務,于謙說︰
「四郊多保壘,是卿大夫的恥辱,怎麼敢求取賞賜功勞呢!」
堅決推辭,明代宗不準,于是增兵守真定、保定、涿州、易州等府州,請求用大臣鎮守山西,防止敵寇南侵。
公元1450年三月,總兵朱謙奏稱敵兵三萬圍攻萬全,敕令範廣擔任總兵官抵御敵軍。
不久敵寇退,于謙請求即駐兵居庸關,敵寇來則出關剿殺,敵寇退則回京師駐守,大同參將許貴奏北面有三個人到鎮上,想朝廷派使者講和。