吴王阖闾九年(公元前506年)夏,晋国支持蔡国吞并楚的属国沈国。楚国围攻蔡国,替沈国复仇。蔡国向吴国求援。吴王对伍子胥和孙武说:"经过五六年的准备,时机到了吗?"
伍子胥、孙武说:"大王要想大举攻楚,必须得到唐、蔡二国的帮助。"
吴王派伍子胥去联合唐、蔡。唐、蔡二国本是楚的属国。有一年,蔡昭侯带着一对玉和两件皮袄去朝楚。楚国令尹子常向蔡昭侯索要剩下的玉和皮袄。蔡昭侯不肯答应,被软禁起来。不久,唐成公带着两匹宝马去朝楚。子常向唐成公索要名马,唐成公不给,被囚禁起来。三年后,他们交出了名马和宝物,才被释放。
蔡昭侯回国后,联合晋、宋、齐、鲁、卫、陈等国,共同伐楚。路遇大雨,晋军归国,其他国家纷纷回国。蔡昭侯想到了吴国。冬天,吴王拜孙武为将军,伍子胥为副将,集结全国兵力,联合唐、蔡二国,出师伐楚。
联军北上,顺着淮河西进,吴军越过了蔡国,孙武下令:"军士登陆,徒步前进。"吴军昼夜兼程,向楚国边境火速前进。
楚国召集大臣举行军事会议,商议选将御敌。双方争论不休,被吴国的间谍探知。伍子胥放出风声说:"如果让公子结为将,我们就取他的人头,让令尹子常率兵,我们只能退避三舍。"楚国拜令尹子常为将。
子常指挥二十万楚军,赶往前线。楚军刚来到汉水南岸,吴军早已到达汉水以北。孙武下令在豫章地区安营扎寨。楚将子常原以为吴军千里远征,粮草运送困难,一定采取速战速决的战略。没想到,吴军却按兵不动。子常命令楚军扎营,严加戒备。
左司马沈尹戍说:"孙武按兵不动,犯了兵家大忌。将军在此暂拖住吴军。我率领本部兵马,烧毁吴军的战船,坚守大隧、直辕、冥陌。将军迎头痛击,我再从背后偷袭。"
子常同意,沈尹戍立即率军绕道而行。武城黑对子常说:"两军相持不下,对楚军不利,不如速战速决。"史皇对子常说:"楚人憎恶将军,爱戴左司马。如果左司马毁舟成功,就独自抢了战功。将军应该赶在左司马行动以前进攻。"
子常不顾和左司马沈尹戍的约定,下令强渡汉水,在大小别山一带,安营扎寨。吴军腹背受敌,个个奋勇冲杀子常率领的楚军。子常率领的楚军背水作战,被迫拼死抵抗。双方大战三次。楚军人多,但素质低,指挥混乱。楚军且战且退,退到柏举。两军相持几日,夫概向吴王请战:"我军先发起进攻,楚军必乱。我军再大举进攻,定能取胜。"吴王不同意夫概的意见。
夫概不顾吴王的反对,率领五千吴军,趁楚军还没有吃饭的时候,发起猛攻。楚军被杀得不辨东西,孙武趁机指挥主力杀了过去。楚军纷纷奔逃,子常也逃跑了。楚军成为一盘散沙,一败涂地。
吴军在清发水追上了楚军。楚军正在抢舟夺船,吴王刚要下令进攻,夫概说:"应该给渡河的楚军一条生路,剩下的楚军就会只顾逃命。我军再趁机发起进攻。"吴王同意了。楚军被杀很多,淹死者更多。
逃过河的楚军,慌忙埋锅做饭。吴军赶到,楚军丢下饭食,忍饥逃跑。吴军吃饭后,继续追杀。
楚军逃到雍噬,前有汉水,后有吴军。左司马沈尹戍领另一路楚军赶到,击退了吴军。后来,孙武率主力吴军赶到,双方在雍噬大战三次。楚军人困马乏,被吴军打败,左司马沈尹戍自杀。
楚军全线溃逃,涌向郢都,郢都暴露在吴军面前。孙武指挥吴军抢渡汉水,直抵郢都。吴军过了虎牙山,来到当阳阪。孙武看到漳河水势汹涌,纪南城地势低洼,郢都地势低洼。孙武命令吴军在高处驻扎,限一夜之间,掘开深壕。天亮时,吴军凿开漳江河堤,江水一泻千里。楚国军民向郢都逃命,郢都城下一片汪洋。
吴军乘筏,顺着江水冲到郢都城下。
楚国军民纷纷逃生,楚昭王乘舟从西门逃走。孙武命人堵住漳江河堤,掘开水坝,放水归江。这时,伍子胥率另一路吴军攻下了麦城。吴王阖闾进入郢都。
在吴楚大战中,孙武指挥三万吴军,打败楚军二十万大军。后来,秦国出兵,帮助楚国收复了郢都。楚国把国都迁到都城。