正统十四年六月,瓦剌太师也先侵犯大明,明英宗朱祁镇在太监王振的怂恿下,不顾群臣劝阻,把年仅两岁的朱见深立为太子,令朱祁钰留守,自己则亲率大臣100多人,50万大军从北京出发,军中一切事务都由太监王振专断。
1449年7月19日出居庸关到达宣府,8月1日到达大同,王振见到瓦剌北撤,坚持追赶,后听闻前方惨败,则惊慌撤退,撤退途中,王振希望在老乡面前显摆一下,于是请求朱祁镇退兵时经过自己的家乡,但是在即将到达蔚州时,王振怕大军踩踏自己的庄园,如有又让军队改道,等大军在宣府时瓦剌追兵赶到,明军大败,之后在土木堡,瓦剌大军包围土木堡,随后明军全军覆没,明英宗被俘。
也先随后率大军进攻北京,朝廷内人心惶惶,有大臣请求南迁,兵部侍郎于谦极力反对南迁,并说:“有议南迁者,斩之。”于谦的这句话为他的死埋下了伏笔,因为要求南迁的大臣中有一个人,叫徐有贞,就是这个人要了于谦的命。
后来,于谦扶立朱祁钰为帝,并主持了北京保卫战,也先原本打算用朱祁镇在威胁明朝,但是朱祁钰上台,朱祁镇失去了利用价值,在瓦剌朱祁镇还浪费粮食,也先于是把朱祁镇送了回来,送回来后朱祁钰当皇帝当上瘾了,不愿还给他哥哥,并把朱祁镇软禁了。
朱祁钰病重不起时,徐有贞等人发动夺门之变,拥立朱祁镇复位,政变成功后徐有贞将于谦抓起来,正史记载,朱祁镇并不想杀于谦,因为于谦当年保卫了北京,但是徐有贞说了一句:“不杀于谦,此举为无名。”于谦遂被杀。
徐有贞这里面有公报私仇之意,徐有贞在北京保卫战使建立南迁,由此仕途不顺,他原叫徐珵,在提拔干部时,皇帝看到他名字,说这不就是南迁那小子,将其驳回去,徐珵于是改名为徐有贞,徐有贞认为这一切都是于谦在为难他,于是记恨于谦。
而朱祁镇也要于谦死,因为当时朱祁钰并没有死,只是躺在病床上,如果朱祁钰的势力团结在于谦周围,再来次夺门之变,那不就完了,因此拯救大明的于谦牺牲了。