昭陽一見魏軍走近,既不等其列陣,也不問話,即令三萬騎兵攻殺魏軍騎兵,一萬騎兵衝擊魏軍步兵,四萬步兵列陣前進,撲殺魏軍步兵,並令杞縣城上戰鼓助威。楚軍戰鼓擂響,昭陽率三萬騎兵疾向魏軍騎兵奔殺過去,一萬楚軍騎兵則疾速繞過魏軍騎兵從側面蕩擊魏軍步兵,四萬步兵則迅速向魏軍步兵撲殺過去。魏軍將領見狀,急令列陣,可那裡來得及呀!魏軍步兵剛要列陣,楚軍騎兵已經從側面衝殺過來了,魏軍騎兵想要去攔截,正面三萬楚軍騎兵已奔殺過來,只好倉促應戰。魏軍步兵雖多,但尚未列陣,被楚軍一萬鐵騎一衝,頓時大亂,楚軍的一萬鐵騎來回衝擊,左衝右蕩,如入無人之境,魏軍步兵死傷嚴重。魏軍的二萬五千騎兵與楚軍三萬騎兵戰於一塊,魏軍騎兵新敗、心有餘悸,且比楚軍騎兵少五千;楚軍新勝,鬥志正旺,且比魏軍騎兵多五千。一接戰,魏軍騎兵便被打得七零八落,沒一會就難以支撐了,魏軍步兵想趕過來增援騎兵,楚軍步兵又潮水般撲殺過來。魏將見狀,知道大勢不妙,一旦魏軍騎兵潰敗,楚軍的三萬鐵騎就會乘勢衝殺魏軍步兵,那時就得全線潰敗。於是,魏軍將領急急下令撤退,楚軍乘勢掩殺八里至楚寨方回,魏軍大敗而逃至趙寨(離楚寨十五里)後方才重新集結。
這一戰,昭陽八萬楚軍斬殺魏軍三萬五千(馬軍七千、步軍二萬八千),連同杞縣一萬魏軍守軍共四萬五千,繳獲戰馬七千匹,盔甲兵器四萬套,糧草輕重一大批。昭陽將糧草輕重、盔甲兵器全部運回杞縣,七千步兵換乘戰馬變成騎兵,變成四萬七千騎兵。隨後,令三萬騎兵趕回襄陵(睢縣)向楚懷王覆命,自己親率五萬楚軍(一萬七千騎兵、三萬三千步兵)固守杞縣,攔截來援魏軍。而魏軍在趙寨重新集結後的軍隊只剩六萬三千(馬軍一萬八千、步軍四萬五千),其中還有三千受傷的,因此,不敢再進攻杞縣,只好等待齊國大軍到來。
楚懷王見昭陽的三萬騎兵回來覆命,大喜。隨命二萬騎兵前去陽驛(鄉,寧陵縣西十里處)接替二萬步兵,令陽驛的五千騎兵,二萬步兵從東面攻打襄陵城。襄陵城的三萬魏軍怎抵擋得住十二萬楚軍的連夜輪番攻擊,二天後襄陵城破,守城的三萬魏軍全部被斬殺,楚軍又獲五千戰馬。襄陵城一破,楚懷王即令八萬楚軍攻打寧陵城,寧陵(縣)的一萬魏軍守軍無路可走,只好投降。楚懷王用三天時間攻佔了襄陵、寧陵二城,斬敵三萬餘,俘虜一萬,獲戰馬七千匹(又增七千騎兵),盔甲兵器四萬套,糧草輕重一大批。這時,齊軍纔出濟南(市)、到了平陰(縣)。楚軍因節節勝利,新增兵勇二萬人。
楚懷王攻佔了襄陵、寧陵二城的一天後,隨即點齊軍將,令一萬楚軍(二千騎兵、八千步兵)留守寧陵城,二萬楚軍(五千騎兵、一萬五千步兵)留守襄陵城,隨時開拔,接應杞縣昭陽的楚軍;自己親率十五萬楚軍(馬軍五萬、步軍十萬),北上迎擊南下的齊軍。楚懷王率十五萬大軍一路北上,二天後攻佔魏邑民權(現河南民權縣);五天後攻佔曹縣(現山東西南的曹縣),七天後攻佔定陶(縣),九天後與齊威王的十五萬大軍相遇於荷澤(現山東荷澤市)地帶。楚懷王趨馬上前說:“來者就是齊威王嗎?”齊威王趨馬上前傲慢的說:“正是!”楚懷王說:“何故助魏與楚交惡?”齊威王說:“魏王許我民權、曹縣,我特來交接。”楚懷王呵呵一笑說:“辦理交接行吏二人就可以,何需你親率十五萬大軍前來,該不是魏王以民權、曹縣作酬碼,請你出軍攻打楚師吧!現如今民權、曹縣兩地,我已經收了,魏王的酬碼沒了,你還替他消災嗎?”齊威王說:“魏王既許諾於我,民權、曹縣就是齊地,你攻佔了民、曹兩地,就是侵犯齊國領土主權,本王這就前來收回”。
楚懷王呵呵大笑說:“我收民權、曹縣兩地的時候,怎沒見到一個齊國人呀!齊國的城邑怎會是魏軍把守,魏國管轄呀”!齊威王說:“那是還沒辦理交割手續”。楚懷王說:“沒交割,那就應該還是魏國的城邑呀!怎說是你的領地了,不害臊!還有,魏王許你城池,該不會是白給你吧!拿人錢財,替人消災。襄陵、寧陵,你還想替魏王爭回嗎”?齊威王說:“待我收了民權、曹縣,再收襄陵、寧陵也不遲”。楚懷王說:“大言不慚!就怕你沒這能耐”。