许昌:何以挟天子令诸侯?

这是有趣的一幕,在曹魏政权的腹地,反而比较多的是对刘家的纪念。也许可以说,曹魏赢得了历史,而蜀汉赢得了记忆。

历史总在变动,当“尊刘贬曹”的价值判断逐渐褪色,许昌人也开始为迁都的主角曹操做点什么了。

(本文首发于2021年8月19日《南方周末》)

责任编辑:杨嘉敏

让我们一起走进许昌的历史深处。 (视觉中国/图)

你厌恶《三国演义》里的曹操么?如果是的话,从什么时候开始的?大概多数人的答案指向了他杀尽好人吕伯奢一家的那个夜晚,而我是从这位安徽老乡使出“挟天子以令诸侯”手段后,体会到什么叫“奸诈”。

随着年岁渐长,阅读渐广,我才知道书中许多生动情节来自于作者的加工甚至虚构。说起来,挟辅汉天子,用皇帝的名义发号施令也不是曹操的首创,董卓早就这么干了。在群雄争霸的格局下,靠近少年天子是必要的策略,毕竟当时有皇帝的政府才是合法政府。

据《三国志》及裴松之注,幽州刘虞、淮南袁术都有过奉迎献帝的举动,只不过雷声大雨点小没起到效果。袁绍的谋士沮授也曾劝说他西迎献帝,以河北的邺城为都,但计策没有被袁绍采纳。等到发觉曹操的这一招很有效,袁绍后悔了,在袁曹隔着黄河南北对峙的形势下,袁绍提出把献帝迁到今天山东境内的鄄城,那里距离他的地盘比较近。时过境迁,当然被曹操拒绝。

那么,曹操为什么能够先下手呢?

为什么是“许”?

让我们把目光聚焦到建安元年(196年)夏天的洛阳。

从光武帝刘秀建武元年(25年)定都洛阳并改名雒阳开始,这座带有“天下之中”光环的城市作为东汉王朝都城繁盛了一百多年。但在初平元年(190年),董卓因关东诸侯军队士气旺盛,对洛阳形成威胁,逼迫年幼的汉献帝迁都长安,以靠近他河西的大本营。迁都之际,董卓不仅大开杀戒,更下令将洛阳城付之一炬,一代名都遭到摧毁性破坏。

初平三年(192年)四月董卓被杀,关中随即陷入混乱,献帝一直谋划逃回旧都,然而颠沛流离,直到建安元年七月初一才得以东归洛阳,但城里破得已经没法住了。一开始献帝只能住在城西故中常侍赵忠的宅子,同时派人简单修了修宫里的一些建筑,到了八月八日才搬进宫,局促可想而知。更大的问题是跟着皇帝回来的还有后宫和扈从,加上聚集在都城的官员和军队,人多粮少的矛盾立刻显现出来。

洛阳盆地是由伊河、洛河下游冲积而成的平原区,土地算是肥沃,但面积不过一千平方公里,作为帝国首都来说,京畿空间太有限了,再往外是高山大河,生活物资多要依赖外地输入。然而当时州郡各拥强兵,交通不畅,地方给朝廷的贡奉运不过来,回到洛阳后的百官连饭都没得吃了,治安更是一塌糊涂,甚至发生官员被士兵所杀的恶性事件。东汉中央政府时隔六七年总算回到旧都,按理说人心思定,都不想再折腾,但从上述悲苦的形势看,迁都作为非常之举,具有合理性。

护送献帝东归的几位将领这时开始争权,有人开始考虑外援,目光瞄向东南方向。很快,兖州牧曹操受留驻京中的卫将军董承之邀,领兵入朝。

繁城镇附近的颍河 (耿朔/图)

曹操这时人在哪里呢?上一年冬天曹操平定兖州,当上兖州牧,势力扩展到今天豫东的开封、淮阳一线,到了建安元年二月,曹操又击破活动在汝南郡的黄巾军,拿下许县,势力进入豫州,扩展到颍水上游,与洛阳盆地只隔了一座嵩山,成为地盘最靠近帝都的军阀之一。

董承的计划是引曹操为奥援,对抗居功自傲的韩暹,而曹操打的算盘是劝皇帝迁许,以便处于自己的控制之下。但事情进展没有那么快,入洛后的曹操虽然很快自领司隶校尉、录尚书事,看似掌夺大权,但对于行迁都这样的非常之计仍然没有把握,毕竟他的实力在诸强中并不突出。议郎董昭建议曹操紧扣要吃饭这一点,劝后者对献帝说“京都无粮,欲车驾暂幸鲁阳,鲁阳近许,转运稍易,可无县乏之忧。”

鲁阳即南阳郡鲁阳县,也就是现在的河南省平顶山市鲁山县,位于洛阳盆地的正南方,许昌在其东北方向,相距上百公里。曹操依计而行,果然说动献帝,车驾于八月二十七日离开洛阳。“幸鲁阳”只是故作姿态,虚晃一枪,实际路线是出洛阳盆地东南的轘辕关,穿越嵩山,一路往东南走,进入颍水流域,直接到许昌。等驻扎在梁国的杨奉等人有所察觉,想要在途中拦截,已为时已晚。到了十月间,曹操的部队主动北上出击,杨奉逃奔袁术,曹操的势力范围进一步扩大,从此牢牢控制了献帝。

皇帝来了,许县也名正言顺改称“许都”。从这时起一直到公元220年曹丕称帝的二十五年间,许都就成为东汉末期的首都,这四分之一个世纪也就是我们常听到的“建安时代”。

通过上述对史事的梳理,曹操的“挟天子”之举似乎

登录后获取更多权限

立即登录

网络编辑:吴悠

欢迎分享、点赞与留言。本作品的版权为南方周末或相关著作权人所有,任何第三方未经授权,不得转载,否则即为侵权。

{{ isview_popup.firstLine }}{{ isview_popup.highlight }}

{{ isview_popup.secondLine }}

{{ isview_popup.buttonText }}