公元前312年(楚懷王十七年)五月二十八日這一天,楚國名將昭睢與付將景翠率二十三萬楚軍在藍田藍關前面採用困關打援,利用時間差和六萬馬軍的優勢,先後擊潰司馬錯、甘茂、庶長章、樗裡疾、張儀和關東、咸陽的四十二萬秦軍,斬殺秦軍二十七萬,截獲戰馬二萬三千匹,盔甲兵器二十五萬套,糧草輕重一大批,自損五萬兵,但馬軍的人數增至七萬騎。首先是昭睢的三萬馬軍、十二萬步軍在藍關前大敗司馬錯、甘茂、庶長章、樗裡疾的七萬新兵和關東安邑的十萬秦軍,斬殺秦軍六萬兵。咸陽第一批五萬援軍的三萬五千先頭部隊趕到,與藍關、安邑秦軍合兵一處,與昭睢的十四萬楚軍膠戰多時,由於馬軍的數量不足,未能挽回秦軍的劣勢。
這時,景翠率二萬騎兵趕到,秦軍隨大敗,被斬殺七萬兵,張儀率咸陽的第二批六萬五千援兵趕到,仍然沒有挽回秦軍的劣勢,死傷慘重。景翠的五萬伊川楚軍輕裝步兵和咸陽的第三批十五萬援軍的五萬新兵趕到,五萬新兵不敵五萬伊川楚軍,幾乎被斬殺殆盡。五萬伊川楚軍隨調頭合擊張儀的敗兵,再夾擊司馬錯、甘茂、庶長章、樗裡疾的殘兵,等到秦惠文王親自率十萬秦軍趕到,藍關城門外的秦軍只剩下六萬兵在困獸猶鬥了。最後,安邑和咸陽的三批援兵連同藍關守軍共四十二萬,只剩十五萬兵,昭睢、景翠的二十三楚軍卻還有十六萬兵。景翠的最後二萬伊川楚軍趕來,十八萬楚軍卻擁有七萬馬軍,十八萬騎、步兵相當於三十萬步軍的戰鬥力。
秦惠文王率着五萬咸陽衛軍進駐藍關,司馬錯、甘茂、庶長章、樗裡疾叩見秦惠文王低頭流淚地說:“末將無能!竟兵敗如此,末將之罪也”!秦惠文王老淚縱橫,起坐扶起四將並愛撫司馬錯傷口說:“四位將軍請起!是寡人低估了楚軍實力,寡人之過也。寡人現帶着全族老少與三軍將士共守藍關”。原來,五月二十五日,秦惠文王接到藍關司馬錯等將領的求救,知道大事不妙,急令咸陽僅有的五萬秦軍火速馳援藍關。
五萬秦軍剛剛出發不到兩個小時,藍關快馬來報:“報大王!安邑十萬秦軍已經趕到藍關,被楚軍困在藍關西面,不能靠近藍關,藍關已經快要被攻破了,司馬錯、甘茂、庶長章、樗裡疾四位將軍率領藍關守軍出城退敵,被楚將昭睢打敗,四位將軍被困關前陣內,生死未卜,守關和安邑的秦軍死傷慘重,已經快抵擋不住了”。秦惠文王聞報大驚失色,手上的水杯也掉在地上,但是很快便平靜下來。這時,內侍跑來報告說:陝北五萬秦軍已經回到咸陽,秦惠文王急召張儀說:“張丞相!你率領陝北五萬秦軍火速馳援藍關,寡人這就集結大軍隨後便趕到”。
張儀得令,即率軍馳往藍關。張儀剛走,秦惠文王隨向咸陽、關中頒發‘詛楚詔’,詔令上說:“全國秦民,三軍將士!楚軍無道,侵我國土,掠我河山,現又舉傾國之兵,兵叩藍關,誓欲滅我秦國子民。藍關一破,你等妻兒老小將淪爲楚軍奴隸,過着生不如死的日子。寡人怎肯苟且偷生,置秦國子民於不顧,今寡人帶領家眷全族,與全國秦民共赴國難,與三軍將士共守藍關。是秦國子民,不分男女,年齡十四歲到六十歲,拿起刀械武器,隨寡人共赴藍關,擊退楚軍,保衛秦國。若有逃避兵役和臨陣脫逃者,均以叛國罪誅處”。
秦惠文王詔令剛出,藍關快馬來報:“報大王!楚將景翠率十萬楚軍西出洛南,與昭睢大軍合擊藍關,咸陽援軍趕到,藍關守軍已全部陣亡,安邑的援軍也已被楚軍擊敗,大將司馬錯、甘茂、庶長章、樗裡疾仍率軍與楚軍惡戰,我軍陣亡十幾萬兵,形勢非常危急”。秦惠文王急令太子(以後的秦武王)集合咸陽鄉勇民丁和五萬衛軍,帶着王后、嬪妃、太子(秦武王)、次子(以後地秦昭襄王)全家老少,奔赴藍關。咸陽秦民見狀,紛紛拿起菜刀、木棍、鐵鏟,趕來助戰,這才**了十萬咸陽民丁鄉勇和五萬衛軍趕往藍關。因爲秦惠文王心裡很清楚,藍關一破,咸陽、關中必被楚軍蕩平,在此生死關頭,只有帶着家眷王族到最前線,才能召喚咸陽秦民共赴國難。果然迅速集合了咸陽十萬兵民,這些鄉丁民勇的戰鬥力雖然很難戰勝楚軍,但對於遏制楚軍的進攻,守住藍關卻是必不可少。
秦惠文王隨令咸陽五萬武裝的青壯兵民先行,然後率着五萬衛軍和五萬老少咸陽兵民隨後急速開往藍關。走到半路,快馬來報說:“咸陽援軍趕到藍關,也被楚軍擊潰,幸好張儀率軍及時趕到,方纔守住藍關,現楚軍又向張儀發起攻擊,我軍又戰敗,張儀、司馬錯、甘茂、庶長章、樗裡疾被楚軍分隔包圍,正和楚軍在藍關前苦戰,形勢對我軍十分不利”。秦惠文王聞報,隨令五萬咸陽五萬青壯新兵跑步前進,衛軍中的一萬騎兵奔援藍關。
正當張儀、司馬錯、甘茂、庶長章、樗裡疾快要全線崩潰時,秦惠文王所帶領的五萬新兵和一萬騎兵及時趕到,可又正值景翠的五萬伊川輕裝步兵到達藍關,隨被楚軍擊敗。五萬新兵死傷殆盡,一萬騎兵只剩一半,幸好天色將晚,秦惠文王的十萬人馬及時趕到,這才接應入關。秦惠文王見司馬錯、甘茂、庶長章、樗裡疾臉容憔悴,渾身傷痕,血跡斑斑,傷心落淚的說:“四位將軍!苦了你們了,你們坐下休息”。接着對張儀說:“張丞相!魏、韓、齊三國,至今爲何未有發兵南下的消息,昭睢明日必定率軍前來攻城,關中、咸陽已經無兵可派了,如之何”?
張儀說:“回大王!魏、韓之所以至今不肯發兵,是因爲大王的賄賂不夠和懼怕楚軍,齊軍之所以不敢揮師南下,是因爲廣陵、關中戰情未明。昭睢楚軍雖然連連得勝,可已經到了強駑之末。大王一面設法拖延昭睢攻城,一面令關中秦民前來守城助戰,戰事便會處於對峙。大王對外散佈困楚軍於藍田,魏、韓受大王厚賄,齊王聞訊楚軍困於藍田,三國必揮師南下,昭睢聞訊,必率軍回楚”。秦惠文王說:“就依你所言,割絳城、侯馬、延津、安邑和河西的韓城、潼關諸地於魏國,割潼關、洛南以東於韓軍”。
翌日,昭睢令五千騎兵押送二十五萬套盔甲兵器回商南,傳令將商州、洛南的財物盡發楚民,招募兵勇,商南五萬楚軍開來藍關。一萬五千馬軍和一萬步軍留守營寨,率五萬馬軍、十萬步軍列陣關前,令軍士搖旗吶喊。正值攻城,忽見藍關城門打開,秦惠文王、秦太子、張儀、司馬錯、甘茂、庶長章、樗裡疾率十萬秦軍出關列陣,五萬咸陽秦民留守城關。秦惠文王驅車上前說:“昭將軍!別來無恙”。昭睢施禮說:“還好”!秦惠文王說:“秦、楚兩國世代姻親,今天你已經勝利了,爲何還要苦苦相逼,難道非要滅秦不可”?
昭睢說:“虧你說得出口,十三年前,楚、蜀成都、褒漢之戰,你起大軍聯蜀攻擊楚軍,七年前,魏王禪冠,你聯合宋、越、蜀背楚,二年前,你聯合魏、韓、越、蜀對楚國實行戰略包圍,年初,你派張儀以緩兵之計,欺騙我家大王,接着又命甘茂偷襲我漢中,庶長章、樗裡疾奪我商南,又命司馬錯、甘茂、庶長章、樗裡疾率大軍合擊我屈匄將軍,斬殺我商南、漢中、浙川楚軍二十餘萬,這是你作爲親家的所作所爲嗎“?
秦惠文王說:“我想這裡面的是非曲直肯定是有些誤會”。秦太子,也就是日後的秦武王接口說:“是你家懷王只能自己做霸王,不能容忍秦國發展壯大。是誰先動手的,是楚軍,是誰先在曲沃、函谷關斬殺我十五萬秦軍,是楚軍。商州、商南的二十幾萬楚軍戰死,我家司馬錯、甘茂、庶長章、樗裡疾的三十五萬秦軍又是被誰斬殺的,現在你又在藍關前斬殺我二十七萬秦軍,真是血債累累”。秦惠文王說:“昭將軍!這一年,楚軍已經斬殺了七十七萬秦**兵,這難道還不夠嗎?聽寡人一言,楚、秦兩國相拼,只有齊、韓、魏三國得利,今你以舉國之兵前來,就不怕魏、韓的**偷襲你的荊州都城嗎?何不就此罷兵,楚、秦兩國言和,率軍回守你的荊都”。
昭睢說:“今你已兵窮軍盡,休想以緩兵詐我,放回屈匄、侯醜楚將,交回漢中。否則,破關之時,我蕩平你的咸陽和關中”。秦惠文王說:“侯醜等人現關押在咸陽,爲示和意,我這就命人回咸陽放歸侯醜等人,屈匄是在丹陽戰死了,他的長刀、戰馬至今還在咸陽,你可以帶回楚都交給懷王。我歸還你漢中之地,你歸還我商州、洛南,如何”?昭睢說:“你還想討價還價呀!後天,我若見不到侯醜等人**和交回漢中文書,我便破你藍關,蕩平咸陽”。
昭睢說完便率大軍回營,回到軍營,景翠說:“這分明是秦惠文王緩兵之計,將軍休要上當”。昭睢說:“這我知道,藍關現在有十萬秦軍和五萬民勇把守,我軍雖然有十八萬,但攻城步兵不過十萬,需引秦軍出來決戰和等商南五萬楚軍步兵到來,方能繼續攻城。這兩天,所有將士輪流**練,做好攻城的各種準備”。