魏惠王闻讯楚怀王大军进击睢宁。一面割让民权(现河南民权县)、曹县(现山东南部曹县)于齐国。请求齐威王派兵救援。一面令大梁十万魏军开拔、奔救襄陵。齐威王接到魏王求救书。随召集文武大臣议事说:“楚怀王亲率二十万精兵伐魏。现已到襄陵。魏惠王割让民权、曹县两县于寡人。请求寡人出兵解救襄陵之困。众卿家以为如何”。有臣奏说:“楚怀王自继位以來。西击蜀、定巫巴、败秦师、定汉中、讨韩伐魏、立定伊川。战绩显扬。其势正盛。不可以在这个时候和他对决”。又有臣奏说:“臣以为。楚怀王西征北讨。年年征战。楚师早已疲倦。今大王举十万大军南下。合大梁的十万魏军则为二十万了。就算不能取胜。楚军也就取不到襄陵了。况且襄陵的战略位置非常重要。楚军攻取了襄陵。明在攻伐魏国。实是打通攻打齐国的要道和对宋国实行合围。大王可约宋国出兵宁陵。形成对楚军的三面夹击”。齐威王说:“善。”随亲率大军十五万(马军三万、步军十二万)出淄博、过济南、南下支援魏军。
楚怀王闻讯。随即召集三军将领说:“齐军十五万。需十五日才能到达襄陵。而大梁的魏军三日便可到达。齐军未到。宋军不敢到宁陵支援魏军。因此。必须在七日内攻下襄陵、宁陵。然后挥师北上。击败齐军。三军将领听令:令昭阳率八万(马、步军各四万)大军火速攻占杞城(现河南杞县)。拦截大梁來援的魏军。又令一大将率三万楚军(马军一万、步军二万)驻扎于襄陵、宁陵之间的阳驿(乡。宁陵县西十里处)。拦截宁陵的二万魏军赶來支援襄陵。其余的九万楚军务必于五日内攻下襄陵。不得有误。”于是。楚军立即向襄陵、杞城发起总攻击。
杞城离襄陵有四十里。离大梁有六十里路。有一万魏军把守。襄陵(睢县)有三万魏军把守。宁陵(县)有二万魏军把守。昭阳率着四万楚军骑兵一个小时就到达杞县。连续不断地向杞城发起猛烈的攻击。而楚军的步军是在三小时后才全部到达杞县的。等到楚军步军全部到达。这时的杞城已经被楚将昭阳连续攻打了二个小时。楚军的四万步军一到。一个小时后杞县的城门就被撞开。守城的一万魏军全部被斩杀。其实。大梁魏军的二万先头骑兵在昭阳骑兵到达杞县的一个小时后也就赶到。但被昭阳用三万骑兵击败溃散。不敢靠近杞城。等到大梁魏军的八万步军赶到。昭阳已攻下杞城二个小时了。这时。昭阳的四万骑兵。四万步兵早已在城外严阵以待。
大梁的十万(马军二万五千、步军七万五千)魏军救兵急急赶到杞县。于西十里铺、惠济河(现杞县西北十里处)一带与昭阳的八万楚军相遇。魏军的总数虽然多了二万。但却少了一万五千骑兵。这正是楚怀王克敌制胜的妙法。因为攻打襄陵城。马军多则用不上。在野外平地冲杀,马军与步军相比。以一当三。故将六万马军拨四万给昭阳。抽出二万步军。以绝对优势在最短的时间内拔掉襄陵城。魏军二万骑兵刚刚被昭阳的楚军骑兵击逃。心有余悸。昭阳一见魏军走近。既不等其列阵。也不问话。即令三万骑兵攻杀魏军骑兵。一万骑兵冲击魏军步兵。四万步兵列阵前进。扑杀魏军步兵。并令杞县城上的楚军战鼓助威。
只听楚军战鼓擂响。昭阳率三万骑兵疾向魏军骑兵奔杀过去。一万楚军骑兵则疾速绕过魏军骑兵从侧面荡击魏军步兵。四万步兵则迅速向魏军步兵扑杀过去。魏军将领见状。急令列阵。可那里來得及呀。魏军步兵刚要列阵。楚军骑兵已经从侧面冲杀过來了。魏军骑兵想要去拦截。正面三万楚军骑兵已奔杀过來。只好仓促应战。魏军步兵虽多。但尚未列阵。被楚军一万铁骑一冲。顿时大乱。楚军的一万铁骑來回冲击。左冲右荡。如入无人之境。魏军步兵死伤严重。魏军的二万五千骑兵与楚军三万骑兵战于一块。魏军骑兵新败、心有余悸。且比楚军骑兵少五千;楚军新胜。斗志正旺。且比魏军骑兵多五千。
双方一接战。魏军骑兵便被打得七零八落。沒一会就难以支撑了。魏军的步兵想赶过來增援骑兵。楚军步兵又潮水般扑杀过來。魏军将领见状。知道大势不妙。一旦魏军骑兵溃败。楚军的三万铁骑就会乘势冲杀魏军步兵。那时就得全线溃败。于是。魏军将领急急下令撤退。楚军乘势掩杀八里至楚寨方回。魏军大败而逃至赵寨(离楚寨十五里)后方才重新集结。
这一战。昭阳八万楚军斩杀魏军三万五千(马军七千、步军二万八千)。连同杞县一万魏军守军共四万五千。缴获战马七千匹。盔甲兵器四万套。粮草轻重一大批。昭阳将粮草轻重、盔甲兵器全部运回杞县。七千步兵换乘战马变成骑兵。变成四万七千骑兵。随后。令三万骑兵赶回襄陵(睢县)向楚怀王复命。自己亲率五万楚军(一万七千骑兵、三万三千步兵)固守杞县。拦截來援魏军。而魏军在赵寨重新集结后的军队只剩六万三千(马军一万八千、步军四万五千)。其中还有三千受伤的。因此。不敢再进攻杞县。只好等待齐国大军到來。
楚怀王见昭阳的三万骑兵回來复命。大喜。随命二万骑兵前去阳驿(乡。宁陵县西十里处)接替二万步兵。令阳驿的五千骑兵。二