確實,“土木之變”後,於謙臨危受命,日夜操勞,不僅為朱祁鈺及朝中文武所依賴,而且對鼓舞京中軍民士氣起到了重要的作用。但於謙推薦了一批有才能的官員,彈劾了一些不稱職的大臣,自然遭到了這些人的嫉恨。當朱祁鈺命滿朝文武商議防禦對策之時,於謙又顯示出傑出的軍事才能。麵對強大的敵人,主將石亨主張盡閉九門,堅壁以避敵鋒。於謙堅決反對,他說:“敵人氣勢囂張,而我為何又先示弱,使其更加輕視於我?”主張明朝守軍全部到城外迎敵。這一對策得到了朱祁鈺及文武官員的支持。
根據這一對策,於謙分遣諸將列陣於九門之外,下令盡閉各城門,以示明軍誓與京城共存亡的抗戰決心。他把自己安排在北麵的德勝門外,和石亨一起,抵擋敵人的正麵進攻。布置已定,於謙傳令九門:“臨陣將不顧軍先退者,斬其將,軍不顧將先退者,後隊斬前隊。”於是,將士人人效命。於謙本人戴盔披甲,親臨戰陣巡視指揮,以自己的行動激勵將士勇敢作戰,保衛首都。
就在明朝守軍嚴陣以待之時,瓦剌大軍也進逼到北京城外。十月十一日,也先等人挾持英宗登上土城,叛敵宦官喜寧唆使也先令明朝大臣出迎聖駕。景泰帝朱祁鈺無奈,派王複、趙榮等人出城朝見,也先以這二人官小,要於謙、石亨、王直等大臣出麵,且索要金帛以萬萬計。景泰帝與一些大臣懾於也先等人的蠻橫,有心議和,但於謙堅決反對,誓與一戰。當瓦剌騎兵進攻德勝門時,於謙設伏兵,誘敵深入,然後出其不意,合圍痛擊,瓦剌軍傷亡慘重。其他各處明軍也取得了勝利。當瓦剌軍士回到土城一帶時,這一帶居民登上屋頂,以瓦片痛擊敵軍,明朝援軍又及時趕到,也先被迫後撤。也先本想擁來明英宗,逼明朝城下議和,撈取金銀財物,沒想到一個子兒也沒撈到,反而遭到慘敗。
與此同時,攻打居庸關的瓦剌軍隊也遭重挫,消息傳來,也先驚惶不已,又聽到明朝各地援軍也將趕到,便無心再戰,拔營起寨,撤圍北遁。明朝的北京保衛戰獲得了重大勝利,為了獎勵於謙、石亨等人,景泰帝特封石亨為武清侯,於謙加少保,總督軍務。
也先的失敗引發了瓦剌內部固有的矛盾。可汗脫脫不花不滿也先的專權,遣使與明朝通好,景泰帝依從大臣之議,厚加賞賜以圖離間。也先雖有此敗,實力並無大耗,在喜寧的攛掇之下,又向明朝邊境發動攻擊。沒想到在大同,守將郭登出奇計,以八百騎大破瓦剌軍,以功封定襄侯。身在敵營的英宗也十分痛恨喜寧誘敵寇邊,設計使其至北京索要財物,密信示邊臣擒之,結果,喜寧被誅。從此也先因不明各地軍情,不敢輕舉妄動。脫脫不花等人與明朝通好後,先後撤回了所部兵馬,也先在頻頻受挫之後,也無心再戰,於是開始以歸還英宗為條件,與明廷進行和談。至此,應該說,於謙領導的北京保衛戰取得了決定性的勝利。
也先聲言要送英宗回朝,明朝的主和派因此又吵嚷著要與瓦剌議和,甚至許多主戰派官員也認為必須迎回英宗,傾向於妥協。於謙識破也先的陰謀,他力排眾議,指出這是敵人企圖借此向我索取財物的伎倆,並說:“社稷為重,君為輕。”他派人申誡各邊鎮將帥,萬勿中敵人的奸計,要做好防禦工作,並選派將領,鎮守邊防重地。他號令嚴肅,賞罰分明,因而,片紙行萬裏,將士無不惴惴效力。在於謙的整頓和指揮下,邊防力量大大增強,各邊鎮的將帥也都主張抗戰,也先在景泰元年(1450)的幾次侵擾都受到嚴厲打擊,陰謀未能得逞。
為了加強京師的防衛力量,於謙又對京軍三大營進行改編。明成祖時,把京軍編為五軍營(由中軍、左掖、右掖、左哨、右哨五軍編成,均為步騎兵)、三千營(初由塞外降兵三千人組成,全是騎兵,主要任務是巡哨)、神機營(使用火器,皇帝出征時須隨軍出征),合稱三大營。土木之變後,三大營喪失殆盡,而且這種組織法因兵種不同,訓練各異,一遇調遣,士兵不習新號令,兵將互相不認識,戰鬥力發揮不出來。於謙在原來三大營中選拔驍勇剽悍者十五萬人,分為十營,每營以一都督統領,下又分五千人為一小營,都指揮為小營的長官。這十營集中團操,稱為團營。遇有戰事,由原來各營的軍官率領參加戰鬥。號令劃一,兵將相習,克服了原來三大營的弱點,提高了戰鬥力。
明朝邊疆和京師防守力量的增強,使也先更無隙可乘,而明朝君臣又識破瓦剌以英宗相要挾的陰謀,拒絕與他議和言好,逼使也先無計可施。為了恢複與明朝的通貢和互市,也先決定將英宗歸還明朝。但“天無二日,國無二君”,迎回英宗必然引起皇位之爭,景泰帝為英宗之弟,理應讓出大位,可這當然是景泰帝極不情願的事。因此,景泰帝以也先多次以和議相欺詐為由,加以拒絕。如何處置這一尷尬的局麵,文武百官不敢妄言。此時,於謙當機立斷,從容不迫地指出:“天位已定,寧複有他?顧理當速奉迎,萬一彼果懷詐,我有詞矣。”景泰帝聞聽此言,喜上心頭,不覺和顏悅色地說道:“從汝從汝。”至此才議定奉迎之事。於謙的抉擇無疑是明智而可行的,如果沒有明確景泰帝的合法與合理地位,片麵強調奉迎英宗,必將導致新的皇位之爭,以弟讓兄,順情合理,這當然是景泰帝所無法接受的。而另一方麵如果隻順從景泰帝之意,拒絕奉迎英宗,於情理不合,必遭天下吏民恥笑。故而,於謙首先承認景泰帝的合法地位不可動搖,令景泰帝消除疑慮,同時指出奉迎為情理中事,不得不行,這也使得景泰帝無法拒絕。
於謙的建議是當時唯一可行的方案,但其傾向性也是相當明顯的。自從“土木之變”英宗被俘後,於謙便一直主張“社稷為重,君為輕”,這是敦促景泰帝即位的重要理由,根據這一觀點,社稷高於一切,君王可以更改。正是在這一主張的支持下,於謙等人擁立景泰帝,保衛北京,徹底粉碎了也先、喜寧等人以英宗為要挾的圖謀。在國家危難之時,重整朝綱,力挽狂瀾,使大明王朝逃過了自開國以來最大的一場劫難,於謙居功甚偉,其臨危不亂的抉擇也是無可挑剔的。這也是導致也先放歸英宗的最主要的因素。景泰元年八月,英宗回到北京,以太上皇的身份,幽居南宮。