這時,秦惠文王、蜀國侯的騎兵已逃出西鄉邑(縣),昭睢率著的輕騎兵已追到白家壩。雖然雙方都是騎兵在奔跑,可不知怎麼搞的,秦惠文王、蜀國侯所率的騎兵就是跑得比較慢,而昭睢的輕騎兵追得則比較快,雙方的距離也就越追越近了。到了城固邑(縣),眼看昭睢的輕騎兵就要追上來了,司馬錯急率三千秦軍騎兵、二千蜀軍騎兵和五百守城的蜀軍憑著城固邑(縣)的土牆作掩護,阻擋楚軍騎兵的攻擊,並下令全軍將士‘進者生、退者死’,以死相拚,掩護秦惠文王、蜀國侯的二萬五千騎兵迅撤到褒漢(漢中市)。昭睢的大隊輕騎兵趕到城固邑(縣),看見司馬錯立馬橫刀,率著五千騎兵列於城下,嚴陣以待。昭睢見狀,隨令一萬楚軍騎兵一字擺開,衝殺司馬錯的五千騎兵,四萬楚軍騎兵,兵分二路繞過城固邑(縣)兩邊,直奔褒漢(漢中市),活捉秦惠文王、蜀國侯。
司馬錯見狀,即令四千騎兵分兩路攔截楚軍騎兵,自率一千騎兵和五百守城步軍,迎戰昭睢的一萬楚軍騎兵。司馬錯的五千騎兵攔截昭睢的五萬楚軍騎兵,以一擋十,無疑是以卵擊石,自取滅亡。雖然如此,卻能拖延些時間,好讓秦惠文王、蜀國侯的二萬五千騎兵跑遠。正是這樣,明知是死,也隻有以死護主了,這就是司馬錯的所謂棄卒保帥的妙計。在石泉縣的鼓兒坪,司馬錯的棄卒保帥妙計,一棄便使七萬秦、蜀聯軍的步兵,都成了楚軍騎兵的刀下鬼和槍下魂,所換來的是秦惠文王、蜀國侯能夠逃到這城固邑。今日又得棄掉這五千騎兵和五百步兵的性命來換秦惠文王和蜀國侯能夠先跑出二十多裏路。哎!秦、蜀聯軍真的是兵敗如山倒,日暮途窮了。
隻見昭睢拍馬挺槍直衝過來,一萬楚軍騎兵也隨之掩殺過來,司馬錯知道秦、蜀二軍的馬、步兵中,無人能夠敵住昭睢,隻好縱馬揚刀,再次迎戰昭睢。無奈,楚軍勢大,司馬錯的一千騎兵全被衝散,隨不敢戀戰,虛揚一刀,勒轉馬頭,便敗回陣去,率著殘兵敗將退進城固邑中拒敵。可是,隻有在後麵的二百步兵和三百騎兵來得及衝回城邑,其餘的七百騎兵、三百步兵全被斬殺。昭睢並不下令攻城,而是令楚軍騎兵繞過城邑,直取褒漢(漢中市)。司馬錯見狀,想再衝出去拖住昭睢,被一軍將拉住:“將軍出去,無疑是飛蛾撲火,枉送自己性命”。司馬錯痛苦地:“我以死殉國,能夠多拖住昭睢的楚軍騎兵十多分鍾,大王便可以多跑遠十多裏路”。這名軍將:“將軍之言差矣!將軍若是再衝出去,昭睢隻需分出一千楚軍騎兵殺你,照樣率著大軍追趕大王去。將軍若是一死,請問誰去保護大王,大王若有閃失,將軍雖死也難辭其罪。還望將軍快快從後門逃出,迅趕上軍隊,好好保護大王”。司馬錯聽後:“若非是你提醒,我差點誤了大事”。隨帶著三百秦軍騎兵,急忙從後門逃出,疾奔往秦惠文王的逃路上去。