不過,對明軍而言,平局就意味著失敗,因為明軍號稱“50萬”,而瓦剌僅有3萬人,雙方在戰(zhàn)場對峙下去,明軍后勤的壓力會比瓦剌大得多,況且,明軍很難在對峙的狀態(tài)下安全撤離戰(zhàn)場返回中土,這是由于古代通訊設(shè)備落后等諸多原因,任何的陣前撤退都很難是有秩序的撤退,極有可能導(dǎo)致軍心動搖,而最終演變成一場各人爭先恐后逃跑的大潰?。v史上因陣前撤退而潰敗的例子有著名的淝水之戰(zhàn))。因此,明軍唯一的選擇是:只有戰(zhàn)勝敵人,才能平安撤離蒙古草原。
雙方經(jīng)過幾個回合的較量之后,明軍逐漸獲得主動,開始兵分兩路發(fā)起進攻了,左哨的寧陽侯陳懋,協(xié)同左掖的成山侯王通強攻敵陣的右邊。瓦剌拼命抵擋,穩(wěn)住了陣腳。這時候,左哨的都督朱崇(陳懋的副手)、指揮呂興帶領(lǐng)將士手持火器逼近敵陣,一輪接一輪地射擊。瓦剌傷亡慘重,其陣腳已經(jīng)被打亂了,但仍然頑抗到底。
右哨的豐城侯李彬協(xié)同右掖的都督譚青及其副手都督馬聚,強攻瓦剌陣營的左邊。雙方將士混戰(zhàn)在一起,戰(zhàn)斗已經(jīng)白熱化。不久,馬聚受傷,都指揮滿都力戰(zhàn)死。朱棣在遠處望見戰(zhàn)局一時陷入膠著狀態(tài),便親自率領(lǐng)重騎兵再次發(fā)起進攻,加入戰(zhàn)團,力圖打破僵局。前鋒將領(lǐng)劉江干脆下馬手持短兵器步戰(zhàn),突入陣中,消滅了很多敵人。
在明軍的全線攻擊之下,瓦剌抵擋不住,終于崩潰了,將士們四散而走。朱棣不肯就此罷手,繼續(xù)指揮部屬追擊。
當(dāng)追擊的明軍越過兩座山岡之后,再次與重新集結(jié)起來的一部分瓦剌將士發(fā)生遭遇戰(zhàn)。瓦剌人抵擋不住,又潰散了。右哨的豐城侯李彬等人一直追到土剌河,在那里生擒了數(shù)十名敵人,另外,中軍副將孫亨嗣也俘獲了戰(zhàn)馬3000匹。不過,瓦剌首領(lǐng)馬哈木、太平等人則成功逃跑了。當(dāng)朱棣收兵回營時,已經(jīng)是深夜了。
第二天,諸將要求繼續(xù)對瓦剌展開追擊。朱棣聽從了皇太孫的意見,認(rèn)為窮寇莫追。
其實,朱棣完全有能力對瓦剌軍隊展開大規(guī)模、長時間、遠距離的追擊。雖說忽蘭忽失溫之戰(zhàn)結(jié)束之后,明軍與瓦剌都有傷亡,但人多勢眾的明軍承受傷亡的能力比瓦剌大得多。然而,朱棣卻選擇了撤退,原因是明軍在忽蘭忽失溫地區(qū)作戰(zhàn)時,后路始終在阿魯臺所部的潛在威脅之下。當(dāng)時阿魯臺的根據(jù)地可能在呼倫貝爾一帶,距離明軍僅有幾天的路程,他原來聲稱要與明軍一起討伐瓦剌,可是最后卻失約了。