长勺之战后,齐军失败而归,齐桓公十分气愤。为了雪耻,也为了重新树立齐国的威信,齐桓公派人到宋国拜访,请宋国出兵一块攻打鲁国。宋闵公正想和齐国建立友邦关系,听说齐国前来邀请,就立即答应,并约定好了出兵的日期。
到了出战的日子,宋国任命南宫长万为将军,猛获为副将,齐国任命鲍叔牙为将军,仲孙湫为副将,各自统领大军,在郎城汇合。齐军驻扎在鲁国东北,宋军驻扎在鲁国东南。
鲁庄公见齐国为报仇而来,气势汹汹,又有宋国相助,还听说宋国将军南宫长万力大无穷,无人能敌,实在不知道该怎样去抵抗,愁得眉头紧锁。大夫公子偃先去看了看齐、鲁两军的情况,回来向鲁庄公禀报说:“齐国的鲍叔牙戒备森严,军容整齐。宋国的南宫长万自恃勇猛,以为天下无敌,军队松散,戒备不严。我们可以趁这个机会去偷袭宋军,他们没有什么防备,一定会被我们打败。到时候,没有了宋国的帮助,齐军也就不会单独留下来了。”鲁庄公说:“你这个计策好是好,但是你不是南宫长万的对手啊。”公子偃说:“请允许我试试。”于是,鲁庄公就派公子偃带军偷袭宋军,自己在后面接应。
公子偃让人将上百张虎皮蒙在马上,带着一支军队,乘着月色,悄悄地到了宋营,宋军一点也没觉察出来。公子偃命令士兵举起火把、擂起战鼓,冲进了宋营。火光下,宋军突然看见一队猛虎咆哮着冲了进来,个个吓得面无血色,四处窜逃。南宫长万虽然勇猛无比,但士兵四散逃跑,单凭一人之力根本就无济于事,自己也只好后退。鲁庄公带着军队前来接应,和公子偃的军队合在一起,连夜追杀宋军。
南宫长万见逃脱不掉,就对猛获说:“看来今天是要决一死战了,不然根本就回不去。”于是两人调转马头,冲进了鲁国大军中厮杀起来。鲁军见南宫长万凶猛无比,都不敢上前。鲁庄公见没人敢去和南宫长万交战,就对旁边的歂孙生说:“我听说你也是力大无穷,你能去和南宫长万决一胜负吗?”歂孙生拿着大戟就直奔南宫长万。两人战了十几个回合,不相上下。鲁庄公让身边的人取来金仆姑。金仆姑是鲁军特有的一种弓箭,威力无比,穿透力极强。鲁庄公搭弓射箭,瞄准南宫长万就是一箭,只听“嗖”的一声,正中南宫长万的右肩。南宫长万忍着剧痛拔出箭,歂孙生趁机用戟刺在了他的腿上。南宫长万一下就倒在了地上,想要挣脱的时候已被歂孙生死死地按住了双手。其他的宋国士兵一看主将已经被擒住,都纷纷逃走了。鲁军大获全胜,鸣金收兵。
回去之后,鲁庄公重赏了歂孙生。南宫长万虽然深受重伤,但是依然站立着,一点也看不出他有多么疼痛。鲁庄公十分钦佩南宫长万的勇气,就将他留在鲁国厚待他。鲍叔牙听说宋军大败,就带军返回了齐国。
后来,齐鲁两国摒弃前嫌,重修旧好。鲁国又在宋国遭遇水灾的时候派人救助,于是齐、鲁、宋三国也都重新和好。宋国请求鲁国释放南宫长万,鲁庄公答应了。
南宫长万回到宋国后,去拜见宋闵公。宋闵公开玩笑地说:“我以前很敬重您,现在你是鲁国的囚犯,我以后不再敬重你了。”南宫长万听了之后,很惭愧地从宫里退了出来。大夫仇牧对宋闵公说:“君臣之间要以礼相交,不能随便开玩笑。开玩笑的话就会显得不敬重,不敬重就会导致傲慢,傲慢而无礼就会产生逆乱,大王一定要切记啊。”宋闵公毫不在乎地说:“我和南宫长万关系很好,开开玩笑没什么事的。”
周庄王十五年,周庄王驾崩,太子胡齐即位,称为周僖王,讣告到了宋国。当时宋闵公正和宫人们游玩,让南宫长万掷戟为乐。原来,南宫长万有个本领,他能把戟高高地抛向空中,然后再用手接回来,每次都接得很准。南宫长万表演了这个本领,宫人们都赞不绝口。宋闵公看了有些妒忌,于是就让人拿来棋盘,要和南宫长万比试,输的人要罚酒。宋闵公擅长下棋,南宫长万一连输了五局,罚喝了五斗酒,开始有些醉了,心里不服气,就要再和宋闵公比试。宋闵公说:“你这个囚犯是败将,还想和我赌胜吗?”南宫长万听了这话,心里很生气,但也没敢说什么。正巧这时,有人来报周庄王驾崩,新王即位,于是宋闵公就准备派人前去吊唁。
南宫长万说:“我从来没去过周都,想要一睹周都的繁盛,请您派我前去吧。”宋闵公笑着说:“宋国即便是没什么才能出众的人,也不至于到了派囚犯前去吊唁的地步啊。”宫人们都大声笑了起来。南宫长万一听这话,面红耳赤,恼羞成怒,借着酒劲,也不顾君臣之分,大声骂道:“你这个无道昏君,你知道囚犯能杀人吗?”宋闵公也大怒道:“你这个囚犯敢这么无礼!”说着就要去抢南宫长万手里的戟。南宫长万一手拿起棋盘,把宋闵公打到在地,又重重地打了几拳,不几下宋闵公就被打死了,宫人们见状都吓跑了。
南宫长万的怒气还没消下去,他提着戟,气冲冲地走出去,在朝门前遇到大夫仇牧。仇牧问他怎么回事,南宫长万说:“这个昏君无礼,我已经把他杀了。”仇牧笑着说:“将军喝醉了吧,怎么说些醉话呢?”南宫长万说:“我没有喝醉,我说的都是真的。”就让仇牧看自己手上的血迹。仇牧一看,知道是真的,就勃然大怒,大骂道:“你这个逆贼,杀害国君,简直天理难容。”说着,仇牧举起手中的笏就去打南宫长万。南宫长万的力气就像是只老虎,一只手就把笏打落,另一只手一挥就把仇牧的头打烂了。
太宰华听说宫廷发生了政变,率兵前来讨伐,在宫门外遇到南宫长万,南宫长万二话不说,上去就是一戟,杀死了太宰华。南宫长万将宋闵公的从弟公子游立为宋君,众公子逃往萧,公子御说逃往亳。南宫长万说:“公子御说才能出众,又是宋闵公的嫡亲弟弟,如今逃往亳,将来是个后患。如果把公子御说杀掉了,就可以高枕无忧了。”于是,南宫长万派儿子南宫牛率兵去围困亳。
宋闵贵族萧叔大心联合曹国军队前去救亳,内外夹击,杀掉南宫牛,宋兵都投降了公子御说。戴叔皮对公子御说说:“我们可以借这些降兵的旗号,谎称南宫牛已经攻克亳,让南宫长万失去警戒心,然后我们趁机率兵去攻打他。”公子御说点头同意。
到了宋国,骗开城门后,公子御说的士兵一拥而入,边走边大声喊:“只捉拿逆贼南宫长万一人,其他的人不要惊慌。”南宫长万一看情况不妙,惊慌着准备逃走。忽然想起家中还有八十岁老母,又返回家中,用辇车推着老母亲,一路杀了出去,直奔陈国。
公子御说即位,他就是宋桓公。宋桓公派人带着厚礼出使陈国,要去捉拿南宫长万。陈宣公贪婪,接受了宋国厚礼后就答应将南宫长万归还宋国。但是,陈宣公担心南宫长万力大无比,难以制服,于是就设下一个圈套。他派公子结对南宫长万说:“我们大王得到您,就像是得了十座城池。即便宋国再来上一百次,我们也不会把您交出去。大王担心您会起疑心,所以特地派我来给您说这些话。如果您实在嫌弃陈国国力弱小,要去别的大国,我们也愿意让您在这里休息一段时间,然后给您车马,送您到大国去。”南宫长万听了,哭泣着说:“承蒙大王不嫌弃我,肯收留我,我还能有什么别的要求呢?”
第二天,南宫长万到公子结家里去拜谢,公子结留南宫长万饮酒,南宫长万醉倒在座席上。公子结让人用皮革把南宫长万包起来,又用牛筋捆起来,还把南宫长万的老母亲押着一块连夜送到宋国。走到半路,南宫长万醒过来,使劲挣脱,但是被捆得死死的,根本就逃脱不了。快要到宋国的时候,南宫长万使劲挣破皮革,露出手脚,押送的士兵担心他逃跑,就打断了南宫长万的手脚。到了宋国,宋桓公下令将南宫长万斩首示众,连他八十岁的老母亲也一块杀了。