此役,为了鼓舞唐军士气,郭子仪亲自领兵出战。严庄见唐军密密麻麻仰攻上山,忙召集弓弩手上前,开弓射之。结果,唐军因有陌刀军在前开道,这些特种步兵人人身穿重甲,根本不怕普通的弓箭,燕军射了半天,唐军伤亡寥寥。严庄没法子,只得派出一队燕军步兵与唐军在山腰间短兵相接,双方大战多时,抵不住李嗣业等人凭借可长可短的陌刀,一会儿排成人墙手持长刀冲锋,一会儿又分散开来用短刀往来砍杀,出战的燕军逐渐气力不支,显露出溃败的迹象。
严庄为挽回败局,急中生智,他又分出三千骑兵,令他们迂回至山下,袭击唐军身后。这一招效果立竿见影,由于唐军上山之时,精锐皆位于阵前,殿后的士兵多是老弱,燕军骑兵一到,唐军后队的士兵措不及防,集体大乱。严庄在山上看得仔细,一声令下,让所有燕军俯冲下山,发起反攻。李嗣业所率的前队士兵固然勇悍,奈何唐军的中、后两队士兵皆被燕军骑兵缠住,无法上前支援他,李嗣业久战多时,终于也败下阵来。
眼看唐军形势危急,这时,在南山的另一侧山坡,突然传来了密集的马蹄声,却是叶护世子带着回纥军队姗姗来迟,总算赶到了战场。严庄正带着燕军主力与唐军主力在山腰间厮杀,冷不防回头一看,大量的回纥人已成功抢占了他们建在山顶的营地,燕军对此无不大惊,大呼小叫道:“回纥人来了!”严庄没想到郭子仪竟然也分出一支骑兵抄袭自己身后,随着大营失守,本来已对唐军形成包围之势的燕军反过来陷入了唐军和回纥军的包围,于是燕军纷纷丧失了斗志。在唐军和回纥军的夹击下,南山之上,燕军血流成河,尸横遍野,严庄与张通儒抛下败兵,只身逃回洛阳,二人带来的十五万燕军全军覆没。
决定洛阳归属权的南山之战就这样戏剧性地划上了句号,郭子仪、严庄二位主将此战非常巧合地采取了同样的战法,结果唐军运气好,回纥人来得稍稍迟了一步,否则严庄若留下一军据守山顶营地,这一战谁胜谁负还难说。战报传至洛阳,安庆绪当夜即带着仅剩的一千三百军队逃往河北的邺城。途中,严庄分析过形势,认为叛军大势已去,为防止日后朝廷清算,他派人秘密会见李豫、郭子仪,希望投降唐军。李豫、郭子仪商议道:“严庄虽然助纣为虐,十恶不赦,但叛军在河北仍然拥有许多军队,如果饶他不死,可以降低我军日后收复河北的难度。”二位主帅遂允准了严庄的投降,并写下保状,在皇帝面前替他求情。事后,严庄被唐肃宗任命为司农卿。
唐军既光复两京,不日,在郭子仪和张镐的通力合作下,整个河南地区全部平定。又一次立下大功的叶护世子因事先约定,待禀过广平王李豫,便迫不及待地要带兵洗劫洛阳城。李豫顾念百姓安危,再次拦住了他,叶护世子大怒:“之前你们皇帝许诺,说只要拿下西京,城中的女子、金帛皆归属于我,广平王让我稍缓几日,说等拿下东京后再给予我丰厚的回报。现在东京也已经攻克,依然不让我进城,难道广平王是想赖账不成?”
“世子错怪小王了,你要回报,又何须进城呢?”李豫劝解道:“为答谢世子前来助战,小王已提前派人入城和百姓们洽谈,让他们在三日之内,筹集一万匹精美的布帛。三日之后,世子可亲自前来验收,若一万匹布帛少了一匹,城中百姓可任由你处置。”
叶护世子一开始并不满足于该条件,仍闹着要进城抢劫,但李豫态度坚决,说什么也不让回纥人进城,且他主动提出筹集一万匹布帛赠予对方,这对不擅纺织的回纥人来说,确实已是一笔很庞大的资产,足够显示出大唐的诚意,叶护世子最终只得作罢。三日之后,城中百姓听说可以免遭回纥人荼毒,如数将上万匹布帛献给回纥人,叶护世子与李豫等众将告辞,拉着数百车唐军的馈赠满载而归。他们走后,唐肃宗、太上皇也分别自凤翔、蜀地启程,乘车驾往长安而来。
十一月,唐肃宗父子陆续驾临长安,郭子仪、李嗣业等众将从洛阳前来参见。唐肃宗手抚着自己父皇曾经坐过的宝座,环顾着熟悉的朝堂,百感交集,召郭子仪上前,衷心感谢道:“朕之家国,是爱卿再造的。”郭子仪磕头致谢,然后回道:“臣之功劳,远不及李光弼、张巡,若非此二人谨守太原、睢阳,牵制了大量的叛军,臣光复两京之战绝不可能如此轻易取胜。”
唐肃宗然之,遂令人为众将评定功绩,论功行赏。评定下来,李豫、郭子仪、李光弼三人的功劳皆为第一等,此事得到了所有官员的支持,无人提出异议。唯一引发争议的将领,便是张巡。就斩敌人数来看,张巡在一年多时间内,累计斩杀敌军近二十万,这一数据碾压其他所有将领。要知道,郭子仪在香积寺之战,南山之战虽然也杀伤了大量的敌军,但因为他曾惨败给安守忠一次,所以他的斩敌人数是有水分的,得把阵亡的几万人扣掉。另外这两战,李嗣业、叶护世子的表现实在太出彩,把功劳全归于郭子仪一人也不公平。就作战难度来看,张巡的兵力全是临时招募的民兵,最多时才几千人,而且长期处于孤立无援的状态,因此他的作战难度也是众将之首,无人可与之相比。最后,就作战意义来看,睢阳保卫战虽然不及收复两京之战重要,但前者长期保证南北漕运畅通,是后者得以发动的基础,所以在这一点上,张巡依然不逊色于郭子仪、李光弼等人。
既然三项评定功绩的硬核指标张巡都位列第一等,那为何他会引发争议呢。因为有大臣详查过睢阳之战的经过,上奏皇帝道:“张巡镇守睢阳时,明明有多次机会可以逃走,但他宁可杀人而食也不肯弃城,看似英勇无畏,其实本末倒置。须知,他身为朝廷大臣,任何时候保全百姓都是最重要的,如此冷酷无情之人,若将其功劳列为一等,只怕天下人会因此心寒。”
唐肃宗也认为张巡杀百姓充饥之事过于残忍,如果高度表彰他,会让人误以为朝廷大将都是杀人无情的屠夫,于是他颁布诏令:册封李豫为楚王(之后又立他为皇太子);册封郭子仪为代国公,加授司徒之职,赐食邑一千户;册封李光弼为魏国公,加授司空之职,赐食邑一千户。功劳没有被评为一等的将领,如叶护世子、李嗣业、仆固怀恩等人,以及之前坚守城池被叛军杀害的官员,亦分别有赏,如果将领已经遇害,其子孙世袭朝廷赐予他们的封地、爵位。另外,在战斗中牺牲的普通士兵也得到了朝廷的抚恤,其家人免除两年的赋税和劳役。这么一番封赏下来,基本所有人都皆大欢喜,唯有张巡、雷万春、南霁云三人的战功无人提及,或者说被朝廷故意忽略。
张巡生前有一好友,名叫李翰,得知这一结果后愤然不平。他言辞激烈地上奏皇帝道:“臣听闻有人指责张巡,说他杀人食肉,是国家的罪人,明知不可守仍坚守睢阳,是愚昧的行为。此事他人不明,犹可理解,难道连陛下也不明白张巡的难处么!张巡坚守的哪是睢阳,他坚守的可是整个江淮,如果他真的弃城逃走,那南方的半壁江山早已不属大唐所有了。陛下凭借张巡守护的漕运以光复两京,今日,却听信一些大臣的谗言,认为张巡不但无功,而且有罪,这是何等的可笑。众所周知,张巡镇守睢阳期间,曾多次派人外出求援,结果无一兵一卒前往相助;他又派人向其他将领借粮,结果睢阳城连续断粮数月,连纸都吃尽了,也无一粒粮食送达。张巡身负坚守江淮,保障漕运之重任,几乎是以一己之力与百万大军抗衡,他若非实在无计可施,也绝不会杀人而食。此外,如果说张巡在镇守睢阳初期就有杀害百姓的行为,即便他的初衷是为了国家,臣也会同样认为他有罪。但当时的情况是,睢阳城中的百姓早已饿死了十之八九,只剩下数百人,这些人若非被张巡所杀,同样也会饿死,所以错不在张巡,而在于对睢阳见死不救的贺兰敬明等人。张巡杀死百姓之后,亦深感愧疚,故以死明志,如果陛下因为他死了而选择忽略他的功劳,那他可歌可泣的英雄事迹不久后就会被人遗忘。像他这样的人,如果连死后都无法获得赞誉,那是国家的悲哀。臣恳请陛下重新评定张巡的功劳,并将其所做的一切如实载入国史。”
唐肃宗阅过张翰的奏疏,慨然长叹道:“是朕一时失察,若非此人仗义执言,险些让义士们的血白流了。”他当即令人补下诏书,追封张巡为邓国公、扬州大都督,其爵位和封地由张巡之子世袭;和张巡一样忠勇的雷万春、南霁云二将,朝廷亦追封官爵,由他们的子孙世袭。