建安十三年六月,曹操废三公,恢复丞相制度,并自任汉朝丞相。
曹操基本平定北方后,兵锋转而南向。建安十三年七月,进军南征荆州刘表。八月,刘表病死,其子刘琮接任荆州牧。九月,曹操大军进至新野(今属河南),刘琮以为无法抵挡,举荆州之众投降曹操。这时,官渡之战后投奔刘表的刘备屯驻于樊城(今湖北襄樊),听说刘琮投降,便率军向江陵(今属湖北)撤退。江陵为荆州重镇,存有大量军用物资。曹操听说,怕江陵落入刘备之手,遂亲率五千骑兵从襄阳(今湖北襄樊)疾驰三百里,在当阳长坂(今湖北当阳东北)将刘备追上,并将其军击溃,随后进占江陵。
由于曹操的进军威胁了吴侯孙权的统治,孙权命大将周瑜率军三万,与刘备联军抵抗曹操。
曹操自江陵东下,至赤壁(今湖北武昌县西赤矶山)与孙、刘联军接战不利,暂驻军于乌林(今湖北洪湖县东北,长江北岸邬林矶),与对方隔江对峙。
周瑜用诈降之计,命大将黄盖率小战船十艘,上装柴草,灌以膏油,假称投降,向北岸而进,至离曹营二里之处时,各船一齐点火,然后借助风势,直向曹军冲去,曹军大败,舟船被烧。曹操率军从华容道(今湖北监利西北)陆路撤回江陵。遂撤军北还。
赤壁大败后,曹操采取一些措施,稳定内部。建安十五年春,曹操下《求贤令》,说:“今天下尚未定,此特求贤之急时也……二三子其佐我明扬仄陋,唯才是举,吾得而用之。”曹操提出不拘品行、唯才是举的用人方针,目的是尽量把人才收罗到自己身边。
建安十六年,曹操开始对关中用兵。三月,曹操遣司隶校尉钟繇率大将夏侯渊以讨伐汉中(治南郑,今陕西汉中东)张鲁为名进兵关中。关中马超、韩遂、杨秋等十部心生疑惧,一时俱反。曹操立即派大将曹仁进攻关中,马超等人屯据潼关。七月,曹操率大军亲征关中。九月,大破关中诸军,马超、韩遂逃至凉州,杨秋逃至安定(治临泾,今甘肃镇原南)。十月,曹操进军安定,杨秋投降,关中地区基本平定。
建安十八年,曹操起兵号称四十万,亲自南征孙权。次年正月,曹军进至濡须口(今安徽巢县东南),攻破孙权设在江北的营寨,生擒其将公孙阳。孙权亲率军七万,前至濡须口抵御曹军。二军相持月余,各无所获。曹操见孙权军容严整,自己难以取胜,遂撤军北还。五月,复《禹贡》九州。
汉天子册封曹操为魏公,加九锡、建魏国,定国都于邺城。魏国拥有冀州十郡之地,置丞相、太尉、大将军等百官。献帝还准许其“参拜不名、剑履上殿 ”,如汉丞相萧何故事。
建安二十年三月,曹操见刘备已取得益州,而汉中是益州门户,“若无汉中,则无蜀矣”,刘备必然要攻取汉中。于是曹操抢先一步,率十万大军亲征汉中张鲁。七月,曹操大军进至阳平关(今陕西沔县西北)。张鲁听说阳平关失守、逃往巴中。曹操进军南郑,尽得张鲁府库珍宝。
十一月,张鲁出降曹操,汉中遂为曹操所有。
曹操主力退出汉中后,刘备随后向汉中发动进攻。建安二十三年,刘备亲率大军进至阳平关,夏侯渊等人与刘备夹关对峙。七月,曹操亲率大军赶往关中,坐镇长安,以便随时指挥汉中战局。建安二十四年正月,刘备自阳平关南渡沔水(今汉水),依山而进,驻军于定军山(今陕西沔县东南),夏侯渊出兵与刘备争夺地势,被黄忠杀掉,曹军大败。之后,曹操亲率大军来夺汉中,但是刘备坚壁不出,曹军与刘备军相距数月,无利,遂放弃汉中。
