兴平二年(195年)底,曹操在雍丘城外发动最后攻势,一举攻占雍丘,杀了张邈的弟弟张超,巩固了兖州的局势。此时正是献帝一行受困于河东郡的时候,也是孙策渡江开拓江东的开始。
曹操也敏锐地注意到了献帝东归事件,之前毛曾提出过“奉天子以令不臣”的建议,曹操觉得现在正是机会。
但是,曹营内部对于是否去迎接天子有不同的看法,他们的理由估计跟郭图、淳于琼差不多,认为迎奉天子得不到什么好处,还会带来许多麻烦,别的不说,单就后勤保障就是一个大包袱。同时,大家认为兖州周边还面临着吕布、袁术这些敌人(山东未平),而洛阳及周围的韩暹、杨奉、董承、张杨等人个个都不是省油的灯,插手洛阳的事务,没有特别的把握(未可猝制)。
荀坚决赞成去迎接天子。荀认为:“当年晋文公因为接纳周襄王而使诸侯影从,汉高祖东讨项羽时因为给被项羽杀害的义帝服丧而深得人心,这说明天子的号召力。之前将军您虽然力所不及,但仍然派使者到长安朝贡,说明您心在王室,有匡扶天下的素志。现在天子蒙难,百姓忧愁(百姓感旧而增哀),如果奉主上以从民望,这是大顺;秉至公以服天下英雄,这是大略;扶持大义以招引天下俊杰,这是大德。天下虽然也会有不服的人,但成不了大气候,区区韩暹、杨奉又能怎样?我们如果不早做决断,一旦他人抢先,我们后悔都来不及了!”
荀的意见得到了毛和程昱等人的支持,这同时也正合曹操的心意。这时,曹操还接到了一直跟随在献帝身边的老朋友兼老乡侍中丁冲派人送来的一封信,告诉曹操献帝身边的一些情况,也建议曹操立即前来迎驾。丁冲信中说:“您平时常常表露出匡济天下、辅佐皇帝的志向,现在到了实现志向的时候了。”
丁冲的来信让曹操进一步坚定了迎接献帝的想法,他调整了战略部署,对徐州的刘备、吕布暂时采取守势,把攻击的重点转向西面的豫州。
建安元年(196年)春天,献帝一行还困在河东郡的时候,曹军主力便开始向西移动,进入豫州刺史部陈国境内的武平县(今河南柘城),属于袁术集团的陈国相袁嗣投降。拿下陈国,曹操继续挥师西进,进入汝南郡和颖川郡。这两个郡都是天下知名的大郡,但此时以何仪、刘辟、黄邵、何曼等为首的黄巾军在此势力很大,他们曾先后依附过孙坚和袁术,算是袁术集团的盟友。
曹操命于禁等人与黄巾军作战。黄邵夜袭曹操的大营,于禁率麾下人马将其击破,斩杀了刘辟和黄邵,何仪等人率众投降,曹操提升于禁为平虏校尉。
此时天子已到了洛阳,曹操派曹洪为先头部队,向洛阳进发,前去迎接献帝。但是,曹洪却遭到了董承、杨奉等人的武力抵抗,不得前进。杨奉有一定战斗力,因为他手下有一个能打的猛人,名叫徐晃。
徐晃字公明,河东郡杨县(今山西洪洞)人,年轻时曾在河东郡做小吏,后追随杨奉镇压黄巾军的蓝本部,因为战功逐步升至骑兵师师长(骑都尉),成为杨奉手下一名高级将领。
西行受阻,曹操心里有点郁闷。据考证,著名的《善哉行》组诗的第三首就作于此时。诗中有“虽怀一介志,是时其能与”,以及“我愿于天穷,琅邪倾侧左。虽欲竭忠诚,欣公归其楚。快人由为叹,抱情不得叙。显行天教人,谁知莫不绪。我愿何时随?此叹亦难处”等句子,表达了虽欲尽忠却无法实现的失落之情。正在进退不得之时,曹操又一次得到了贵人的暗中相助,这个人还是那个曾经帮助过自己的董昭。
董昭到了长安以后被任命为议郎,也经历了千里大逃亡,侥幸活着回到了洛阳。听说曹操所部在洛阳以东地区受阻,董昭决定用自己的智慧再帮曹操一把。
他看到董承、杨奉、韩暹、