楚國為了援救鄭國,就發兵攻打侵鄭的宋國,宋襄公將要迎戰。大司馬子魚極力勸諫說:“上天厭棄殷商由來已久了。儘管國君您想復興圖霸,但是,違天獲罪,是不可宥赦的啊。”宋襄公不聽從他的意見。於是宋國與楚國大戰於泓水。
宋國軍隊已經排成陣列,楚國軍卻還沒全部渡河,司馬子魚說:“他們軍隊眾多,我們人少,趁他們尚未全部渡河,請立刻下令攻擊他們!”宋襄公說:“不行。”後來,楚軍已全部渡河,但還沒有布好陣列。子魚又將情況告訴襄公,勸他下令出擊,襄公還是說:“不行。”等到楚軍完全布好陣列,宋軍才發動攻擊,結果,宋軍遭到慘敗。宋襄公傷了大腿,近衛隊 全被殲滅。 國人都責備襄公的過失。襄公說:“君子在作戰時不對受傷者再加傷害,不捉拿頭髮斑白的人。古代用兵的原則,是不截擊陷於險地的敵軍。寡人雖是亡國的殷商後代,但是我要遵循古訓,不進擊未成陣列的敵軍。”子魚說:“主公您不懂得作戰的原則。那強勁之敵陷於險地而又未擺開陣列,是上天幫助我們,加以阻截而攻擊他們,不也是可以的嗎?這樣還恐怕不能取勝呢?況且今日的強勁之軍都是我們的敵人。即使其中有的人已到老年,在戰鬥中也要擒獲他,管什麼頭髮是否斑白?明確指出恥辱,教導將士英勇戰鬥,是要求他們殺敵啊。只傷了敵人而沒有殺死,怎麼不可再殺傷他呢?如果愛護他們,不再殺傷,那就像不傷他一樣;愛護那頭髮斑白的人,不加擒獲,還不如向他們投降。指揮三軍作戰的原則,是要掌握有利條件,見機而動;鳴金擊鼓,是用來壯聲氣、齊號令。既然要掌握有利條件見機而動,那麼,在險隘之地截擊敵軍是可以的啊。鼓聲大盛能有效地鼓舞鬥志,那就可以對立足未穩、陣列不整的敵軍發動攻擊。