春秋時期中原地區的第一個霸主齊桓公去世後, 各國諸侯頓時失去了一匡天下的領導人, 成為一片散沙。 齊國因內亂而中衰, 晉、秦也有各自的苦衷, 暫時無力過問中原。 這樣, 長期以來受齊桓公遏制的南方強國——楚國, 就企圖乘機進入中原, 攫取霸權。 素為中原列國目為“蠻夷之邦”的楚國的北進勢頭, 引起中原諸小國的忐忑不安, 於是一貫自我標榜仁義的宋襄公, 便想憑藉宋為公國、爵位最尊的地位以及領導諸侯平定齊亂的餘威, 出面領導諸侯抗衡楚國, 繼承齊桓公的霸主地位, 並進而伺機恢復殷商的故業。
且說宋襄公專心致志爭當盟主, 雖然雄心勃勃, 但畢竟國力有限, 因此只能單純模仿齊桓公的做法, 以“仁義”為政治號召, 召集諸侯舉行盟會, 藉以抬高自己的聲望。 可是他的這套把戲, 不僅遭到諸多小國的冷遇, 更受到楚國君臣的算計。 在盂地(今河南省睢縣西北)盟會上, 宋襄公拒絕事前公子目夷提出的多帶兵車, 以防不測的建漢, 輕車簡從前往, 結果為不講信義的楚成王手下的軍隊活捉了起來。
楚軍押著宋襄公乘勢攻打宋都商丘(今河南商丘市), 幸虧太宰子魚率領宋國的軍民進行頑強的抵抗, 才抑制了楚軍的攻勢, 使其圍攻宋都數月而未能得逞。 後來, 在魯僖公的調停之下, 楚成王才將宋襄公釋放回國。 宋襄公遭此奇恥大辱, 真是氣不打一處來。 他既痛恨楚成王的不守信義, 更憤慨其他諸侯國見風使舵, 背宋親楚。 他自知軍力非楚國之匹, 暫時不敢主動去惹犯它;而是先把矛頭指向臣服于楚的鄭國, 決定興師討伐它, 以顯示一下自己的威風, 挽回自己曾為楚囚俘的面子。 大司馬公孫固和公子目夷(宋襄公的庶兄)都認為攻打鄭國會引起楚國出兵干涉, 勸阻宋襄公不要伐鄭。 可是宋襄公卻振振有詞為這一行動進行辯護:“如果上天不嫌棄我,
周襄王十四年(西元前638年)十一月初一, 楚軍進抵泓水南岸時, 宋軍已占有利之地, 在泓水北岸列陣待敵。
這時楚軍猶在陳國境內向宋國挺進途中。 宋襄公為阻擊楚軍於邊境地區, 屯軍泓水(渦河的支流, 經今河南商丘、柘城間東南流)以北, 以等待楚軍的到來。 十一月初一, 楚軍進至泓水南岸, 並開始渡河, 這時宋軍已布列好陣勢。
當楚軍開始渡河時, 右司馬公孫固向宋襄公建議:“彼眾我寡, 可半渡而擊”, 宋襄公拒不同意, 說仁義之師“不推人於險, 不迫人於阨 ”。
但是卻為宋襄公所斷然拒絕, 從而使楚軍得以全部順利渡過泓水。 楚軍渡河後開始布列陣勢, 這時公孫固又奉勸宋襄公乘楚軍列陣未畢、行列未定之際發動攻擊, 但宋襄公仍然不予接受。 一直等到楚軍佈陣完畢, 一切準備就緒之後, 宋襄公這才擊鼓向楚軍進攻。 可是, 這時一切都已經晚了, 弱小的宋軍哪裡是強大楚師的對手, 一陣廝殺後, 宋軍受到重創, 宋襄公本人的大腿也受了重傷,
戰後國人皆怨襄公指揮不當, 但宋襄公並未認識自己的錯誤, 向臣民辯解說:“古之為軍, 臨大事不忘大禮”、“君子不重傷(不再次傷害受傷的敵人)、不擒二毛(不捉拿頭髮花白的敵軍老兵)、不以阻隘(不阻敵人於險隘中取勝)、不鼓不成列(不主動攻擊尚未列好陣的敵人)”, 認為自己遵守古訓行事並無不當。 西元前637年(周襄王十五年)五月, 宋襄公傷重而死。