七月二十八日,正当景翠、景奎各自率领五万楚军骑兵准备出发时,郑袖又命八百里快马,传令景翠、景奎将兰考县回赠魏襄王,以示楚、魏两国和好。景翠率领五万楚军骑兵,取单县、成武。景奎率领五万楚军骑兵,取曹县、定陶。睢阳的二万楚军骑兵北上,与景奎的骑兵,合击匡章的八万齐军。然后,命景翠、景奎挥师东进,配合昭阳,收复失地。
这时,齐、楚两军在泗上的军事态势是:齐将匡章率领一万五千齐军骑兵、六万五千齐军步兵驻守在荷泽,田贲的二万齐军骑兵、六万齐军步兵在济宁,另外的三万齐军骑兵、十四万齐军在枣庄、临沂,齐军的总兵力是三十三万兵,其中六万五千骑兵,二十六万步兵。而昭阳楚军的总兵力是二十六万兵,其中骑兵五万、步兵二十一万。
楚将昭阳率着三万楚军骑兵、五万楚军步兵镇守在金乡、鱼台,和驻扎在睢阳的三万楚军一起,与田贲、匡章的十六万军队对峙。另外,昭阳的二万楚军骑兵、十二万楚军步兵在枣庄、临沂与齐军对峙。齐军处于进攻,楚军采用堡垒战术、处于坚守的状态。自从江汉楚军北上,向魏、韩两国军队发起大反攻以来,齐将田贲和匡章非常焦虑,等到闻讯韩、魏两军相继大败请降,更是焦躁不安。而昭阳的楚军闻讯,则是士气高升,个个摩拳擦掌,等待着反攻时刻的到来。
七月二十九日,景翠、景奎各自率领五万楚军骑兵,从睢阳出发,兵分二路,一路由景翠率领,一路凯歌,连克单县、成武。一路由景翠率领,克曹县,向荷泽进发。齐将匡章闻讯大惊,其弟匡非说:“楚军势大,又都是骑兵,不可与之交锋,不如放弃荷泽,速速率领军队,退至巨野与田贲会合,二军固守巨野和济宁,尚可抵挡楚军的攻击”。
匡章说:“荷泽四县丢失,未战先逃,我回去,如何向大王交代”?随令匡非率领三万齐军留守荷泽,自己急忙率领五万齐军精兵南下,与景奎的五万楚军骑兵遭遇、对峙于定陶。匡章虽然率领五万齐军精兵,但只有一万五千骑兵,自然难敌景奎的五万楚军骑兵了。于是,匡章随后又将留守荷泽的三万齐军步兵,也调到定陶抵抗景奎的楚军。
在成武县的景翠得知匡章将荷泽的三万守军调到定陶,为了迷惑匡章,随率领五万楚军骑兵向东北方向的南鲁集镇驰去,使匡章误以为景翠是率领楚军骑兵,前去攻打巨野。殊不知景翠的楚军骑兵,一到万丰镇便迅速掉头西进,五万楚军骑兵分成五路直奔荷泽。这万丰镇离荷泽虽有六十里路,但对楚军骑兵来说,顶多二个多小时,便可全部到达。等到匡章觉察,景翠的楚军骑兵已经是到了半堤乡,匡章再想命令齐军步兵,回军菏泽,已经太迟了。半个多小时后,景翠的五万楚军骑兵便占领了荷泽。匡章见回师荷泽已晚,随率着八万齐军猛攻景奎,企图将景奎的五万楚军骑兵击退,借以据守定陶。
就在这时,二万楚军骑兵从曹县方向,迅速驰向定陶。这是睢阳尾随景奎而来的二万楚军骑兵。匡章见状,知道击退景奎无望,随改进攻为固守,命令军士掠阵,张弓搭箭。这时,二万齐军骑兵从巨野方向奔来,原来是济宁的田贲闻讯景翠的楚军骑兵从成武,往巨野方向驰去,急忙命令二万齐军骑兵驰援。当齐军骑兵到达巨野,景翠的五万楚军骑兵已经杀到荷泽。因此,齐军的二万骑兵扑了个空白,便掉头南下,奔向定陶,企图援助匡章。
景翠闻讯齐军的二万骑兵南下定陶,随令荷泽的三万楚军骑兵,将从巨野南奔的二万齐军骑兵,拦截于半堤乡、孟海镇一带。景翠自己则率领二万楚军骑兵南下,穿过罗庄村,从背后冲杀匡章的齐军步兵。就算齐将匡章再勇再能战,八万齐军也抵挡不住景奎、景翠的十二万楚军骑兵的前后夹击。因此,齐军顿时大败,匡章急急率着一万五千齐军骑兵向东,从杜堂乡杀出。景奎率着二万楚军骑兵,从后面紧紧追杀至柳林镇,匡章仅带着一万二千名齐军骑兵逃回巨野。而从巨野驰来增援的二万齐军骑兵见势不妙,便都掉头逃回巨野,但也损失了二千骑兵。可怜那六万五千名齐军步兵,在七万楚军骑兵的冲杀下,不是被楚军的刀枪所杀,就是被楚军的战马撞死、踩死,少有生还。
定陶这一战,景翠、景奎的楚军骑兵,一共斩杀了匡章七万齐兵,其中有五千是骑兵,截获战马五千匹,盔甲兵器七万套,粮草轻重一大批。景翠随令二万楚军骑兵驻守荷泽,招募兵勇,与景奎各自率领五万楚军骑兵,杀奔巨野而来。据守在金乡、鱼台的楚将昭阳,闻讯景翠、景奎连克单县、成武、曹县,又闻济宁田贲的二万齐军骑兵尽出,奔援定陶的匡章齐军,随令金乡、鱼台的楚军全部杀出,北上攻打济宁的齐军。
昭阳在金乡、鱼台有二万楚军骑兵、六万楚军步兵,而济宁田贲的二万齐军骑兵奔援定陶后,就只剩下六万齐军步兵了。昭阳的大军行至金屯镇,正值匡章率着齐军骑兵败回巨野。昭阳闻讯,随令二万楚军骑兵迅速抢占嘉祥邑,切断匡章的齐军骑兵往济宁的退路,将齐军斩成巨野和济宁二块。匡章率着齐军骑兵一到巨野,便向济宁的田贲靠拢,三万齐军骑兵随向嘉祥奔来。这时,昭阳的六万步兵已经到了宫王庄,与济宁田贲的六万齐军步兵对峙。
昭阳看见匡章率着三万齐军骑兵杀来,随率着二万楚军骑兵于卧龙山镇列阵,阻住匡章骑兵的去路。匡章正想发起攻击,景翠、景奎的十万楚军骑兵已经奔至巨野。匡章闻讯大惊,随不敢战,急忙率着三万齐军骑兵脱离战线,向北逃到汶上。田贲闻讯,急忙率领六万齐军步兵,北撤宁阳。昭阳的楚军乘势掩杀,田贲的齐军步兵,死伤一万兵。
至此,田贲、匡章的齐军已经成为惊弓之鸟。田贲急命八百里快马,传令正在枣庄、临沂与楚军对峙的十七万齐军,迅速向北撤兵,并令五万齐军步兵先行撤退到泰安,与匡章各自率着一万五千齐军骑兵,向东驰往平邑,以接应枣庄、临沂的齐军。
昭阳见状,即命八百里快马,传令枣庄、临沂的楚军守军全线出击,并令景奎的五万楚军骑兵北上东进,先后攻占了郓城、汶上、宁阳、兖州四县,六万楚军步兵驻守济宁。昭阳与景翠率着七万楚军骑兵,从济宁驰往滕州。田贲、匡章率着四万齐军骑兵、十六万齐军步兵连连后退,昭阳、景翠率着八万楚军骑兵、十四万楚军步兵步步逼进。
从枣庄、临沂开始,一路追杀田贲、匡章的齐军,一直到新泰方止。楚军斩杀齐军二万余人,连续收复了滕州、平邑、费县、临沐、莒南、莒县、沂南、沂水等八县,又攻占了五莲、诸城和蒙阴、新泰四个县,连同景奎占领的郓城、汶上、宁阳、兖州,楚军又新占领了齐军的八县之地。
仅仅半个月,昭阳、景翠、景奎的楚军,一共斩杀匡章、田贲的齐军十万余人,截获战马六千匹,盔甲兵器十万套,粮草轻重一大批。楚军阵亡了二万余人,收复了单县、成武、曹县、定陶、荷泽、巨野、嘉祥、济宁、滕州、平邑、费县、临沐、莒南、莒县、沂南、沂水十六个县,又拓地五莲、诸城、蒙阴、新泰、郓城、汶上、宁阳、兖州等八个县。而收复的十六个县原本就是楚军的领地,再加上楚军战胜和这里基本都是平原,人口较多。昭阳、景翠、景奎仅用半个月的时间,便招募兵勇得十万兵。
这时,昭阳、景翠、景奎的三路大军总共是十七万楚军骑兵、二十九万楚军步兵,主要分别驻扎在睢阳、荷泽、济宁、枣庄、临沂、徐州。战报传至襄阳,郑袖随八百里快马传令说:“新设置睢阳郡,杞县、太康、柘城、民权、宁陵、曹县、单县、成武、定陶、荷泽、巨野、郓城归睢阳郡管辖,令景奎率马军三万、步军十二万镇守睢阳郡。其余各县、邑,尽归徐州郡管辖,令昭阳率五万马军、十七万步军镇守徐州郡。景翠率领九万骑兵,迅速南下广陵,解决越军”。于是,昭阳随在济宁、枣庄、临沂三处,各驻扎一万马军和四万步军,然后率领二万马军、五万步军回驻徐州。景奎随令一万马军、五万步军驻守荷泽,然后率领二万马军、七万步军回驻睢阳。而景翠则奉命率着九万楚军骑兵南下,直奔广陵。
这时,也就是八月二十五日,楚军对魏、韩、齐三国的自卫战宣告结束。战场从湖北的襄樊开始,向北一直环延到山东的诸城,总战线近二千里。战斗历时两个多月,楚军一共消灭韩军二十一万、魏军四十万、齐军十万。楚军虽然也伤亡二十几万兵,但在襄樊、南召、汝州、偃师、长葛、尉氏、定陶、济宁等地,每一战的结果都是楚军胜,因而截获了大量的粮草轻重和数万匹战马,单单盔甲兵器,就达七十万套之多。
因此,楚军一招募兵勇,军队便迅速得到补充。如昭阳、景翠、景奎募得兵勇十万,唐蔑、樊离于许昌周围募得五万兵,而司马淖滑、熊彪也募得五万兵。这时,唐蔑、樊离在许昌、长葛、鄢陵的军队是七万楚军骑兵、十一万楚军步兵,司马淖滑、熊彪在巩义、孟津、登丰、伊川等地的军队是四万楚军骑兵、十五万楚军步兵。郑袖随又命快马传令:唐蔑率领四万楚军骑兵、十一万楚军步兵,镇守许昌郡。樊离率领三万楚军骑兵,返回南阳,将二万楚军骑兵交给昭睢,率领一万楚军骑兵,回到襄樊待命。