四月,劉協在荀彧、張楊等人護送下,回至洛陽,逃往野王的董承也得以率兵還回。小皇帝的東歸之路整整走了十個月。獻帝以護駕之功,遷張楊大司馬,董承為大將軍,郭太為車騎將軍、劉琦為驃騎將軍、假司隸校尉,皆假節。
洛陽經歷董卓之亂後,已成廢墟,劉協居於新修之南宮楊安殿,百官皆無住所,「披荊棘,依牆壁間」。時州郡貢奉不至,洛陽糧荒,郡臣飢乏,或有餓死者。君臣處境十分狼狽。
建安元年(196)二月,曹操在兗州站穩腳跟後,開始向外擴充套件勢力。時汝南郡、潁川郡,黃巾軍何義、劉闢、黃邵、何曼等部,各有兵數萬,趁曹呂相爭起兵攻掠城池。曹操率兵進擊,在許縣一帶擊破何義等軍,勢力發展到豫州,軍隊實力也有`所增強,漢廷拜曹操為建德將軍。
攻下許縣以後,曹操與眾謀士商定迎接皇帝。於是派遣大將曹洪至洛陽迎接獻帝,董承等拒險阻擋,曹洪未能如願。
劉協回到洛陽後,荀彧暫留宮中聽用,被命為待中。大臣張楊、董承等互相猜忌不和。議郎董昭認為曹操是天下英雄,與曹操聯絡。董昭拉攏董承說張揚是袁紹黨羽,而袁紹又不願奉天子;而劉琦地處邊塞,好征伐。正好這時董承把持朝庭兵馬又無糧草,而朝中又沒有黨援,便假作曹操收信於董承,信中說曹操願為董承外援,並說董承有兵,曹操有糧,正好互通有無。董承得信大喜,遂表曹操為鎮東將軍,襲父爵費亭侯。不久,董承因郭太、張楊等據功自傲胡作非為,暗中召曹操入朝,以制張楊等人。
五月,曹操帶兵入洛陽朝見劉協,一碗雞湯收買了劉協柔弱的心靈,然後奏郭太、張楊之罪。郭太再逃河東,獻帝因郭太等護送之功,詔令赦免。獻帝遂以曹操領司隸校尉、錄尚書事、假節鉞。曹操以護駕之功奏封衛將軍董承等十三人為列侯,以罪殺侍中臺崇、尚書馮碩等三人,初執朝政。荀彧看穿曹操狼子野心,多次勸諫劉協,劉協不從。荀彧心恢心冷,急發書信與劉琦。
建安元年(196)六月,曹操入朝執政後,本想遷都於許縣,但因獻帝久經顛沛流離,形勢初定,怕再次遷都遭人非議,為此猶豫不決。於是問計於議郎董昭。董昭說,現洛陽諸將人多意雜,不一定服從,要成就大事,只有遷都。董昭又對曹操說,行非常之事,才能有非常之功,希望曹操深思熟慮,從大處著眼,早日決斷。董昭建議曹操先遣使拜謝董承表自己為鎮東將軍的恩情,以安董承之心,然後對董承表示,洛陽糧食困難,先讓獻帝暫時到距離許縣較近的魯陽,以便保證糧食供應。董承居功自傲一定不會懷疑,然後將獻帝直接迎至許縣。
六月中旬,劉琦平定弘農全境,屯兵澠池,率三千神刀衛進入洛陽。
曹操、劉琦二人本就有舊,見面相互客套一番。
朝堂上,曹操已買通百官,勸說劉協遷都。荀彧已是百口莫辯,見劉琦低頭不語,也住口不言。劉協見迎他東歸的最大功臣不高興了,就更加為難了,問劉琦道:「皇兄,這洛陽確實破敗,實在不適作為國都。兄有何議?何不說出來大家商議?」
「陛下即欲遷都,何不遷往晉陽?穎川多賊亂,而幷州安定多年,驃騎將軍勤政愛民,晉陽城的繁華已不下當日的東都。」荀彧再次反駁。
曹操此時豪氣縱生,對著滿朝文武道:「我袞州如今兵強馬壯,帶甲三十萬,戰將數千員,平定穎川、汝南亂軍只用了月餘時間。且許縣居中原腹地,地廣人多,重建新都,聚華只不過年餘時間。而幷州地處邊陲,山高路遠,又有胡蠻邊患,陛下九五之尊,豈可居於那苦寒之地?」
「是啊……」
「曹將軍所言極是!」
……