黨打敗,獻帝渡過黃河,到達安邑縣。
漢獻帝建安元年(196)正月,太祖到了武平,袁術任命的陳國國相袁嗣向太祖投降。
太祖準備去迎接獻帝,眾將中有人產生疑慮,惟有荀..、程昱極力勸說,便派曹洪帶兵西行,迎接獻帝,衛將軍董承和袁術部將萇奴據險阻止曹軍前進。
汝南、潁川一帶的黃巾何儀、劉辟、黃邵、何曼等人,都有數萬之眾。
當初追隨袁術,後又依附孫堅。
二月,太祖派兵征討,大敗賊軍,劉辟、黃邵被斬首,何儀投降。
獻帝封太祖為建德將軍,六月,又升任為鎮東將軍,封為費亭侯。
七月,楊奉、韓暹護送獻帝回洛陽,楊奉另派兵駐守梁縣。
太祖便趕到洛陽,保衛京都,韓暹逃走。
獻帝授予太祖符節、黃鉞,讓他統領內外諸軍,領尚書事務,總攬朝政。
此時洛陽城已殘破不堪,董昭等人力勸太祖遷都許縣。
九月,獻帝車出頧轅關,向東進發。
獻帝任命太祖為大將軍,封為武平侯。
自從獻帝被董卓威逼西遷長安,朝廷日漸混亂,直到此時,各項祭祀製度才又確立起來。
獻帝遷都許縣時,楊奉準備在梁縣攔截,但錯過了時機。
這年十月,曹公領兵征討楊奉,他南逃到袁術那裏,於是曹公進攻他在梁縣的駐軍,占據了梁縣。
這時獻帝封袁紹為太尉,袁紹以職位在曹公之下而深感恥辱,不肯接受。
曹公便辭去自己的職位,把大將軍之職讓給了袁紹。
因此,獻帝任命曹公為司空,代理車騎將軍。
這一年,曹公又采納了棗祗、韓浩等人的建議,開始實行屯田製。
呂布襲擊劉備,攻克下邳。
劉備投奔曹公,程昱勸說曹公:“依我看劉備有雄才大略,又深得民心,不會久居人下,不如趁早除掉他。”曹公回答:“如今正是招攬賢才之時,為殺一人而失天下人心,得不償失。”張濟從關中逃到南陽,他死後,侄子張繡統領他的人馬。
建安二年(197)正月,曹公到達宛縣。
張繡投降,事後又後悔,重又反叛。
曹公前往討伐,遭到失敗,自己被流箭射中,大兒子曹昂、侄子安民被殺死。
曹公退回舞陰縣,張繡率騎兵抄襲,被曹公擊敗。
張繡逃往穰縣,與劉表合兵。
曹公對眾將說:“我讓張繡等人投降,卻犯了沒有立即扣押人質的錯誤,所以遭到了失敗。
我明白了失敗的原因,請大家看著,從今以後我不會再失敗了。”便撤兵回許都。
袁術準備在淮南稱帝,派人告知呂布。
呂布扣留了他的使者,把他的信呈送給朝廷。
袁術大怒,派兵攻打呂布,被呂布擊敗。
這年九月,袁術率軍進犯陳國,曹公率兵東征。
袁術聽說曹公親自出馬,棄軍逃走,留下部將橋蕤、李豐、梁綱、樂就;曹公一到,便擊敗了橋蕤等人,把他們全部斬首。
袁術逃回淮南,曹公回到許都。
曹公從舞陰回來以後,南陽、章陵等縣重新反叛,歸附張繡,曹公派曹洪去征討,師出不利。
曹洪撤軍,駐守葉縣,又多次遭到張繡、劉表的襲擊。
這年十月,曹公親自南征,來到宛城。
劉表的部將鄧濟占據湖陽,曹公攻下湖陽,活捉鄧濟。
又一舉攻下舞陰。
建安三年(198)正月,曹公回到許都,初次設置軍師祭酒之職。
三月,曹公在穰縣包圍了張繡。
五月,劉表救援張繡,派兵切斷曹軍的後路。
曹公撤退,張繡追來,曹軍不能前行,於是結成連營,得以慢慢前進。