建安十六年(公元211年)三月,曹*派遣司隶校尉钟繇讨伐张鲁,命令征西护军夏侯洲等率领大军从河东出发,与钟繇会合。丞相仓曹属高柔劝曹*说:“大军向西进发,韩遂、马超会疑心是袭击他们,必然互相煽动。应当先安定三辅地区,如果三辅地区平定,只需发布文书,就能平定汉中。”曹*不听。

    关中的将领们果然起了疑心,马超、韩遂、侯选、程银、杨秋、李堪、张横、梁兴、成宜、马玩等十部都起来造反,合起来有十万人马,据守潼关。曹*派遣安西将军曹仁统率诸将抵挡,令他们坚守营寨,不要出战。命令五官中郎将曹丕留守邺城,委任奋武将军程昱协助曹丕处理军务;任命门下督广陵人徐宣为左护军,留在邺城统率留守部队;任命乐安人国渊为丞相府的居府长史,负责留守事务。秋季,七月,曹*亲统大军,进攻马超等。许多参预军务讨论的人都说:“函谷关以西的士兵善于使用长矛,不挑选精锐部队作前锋,会抵抗不住的。”曹*说:“战争的决定权控制在我手中,而不在敌人手中。他们虽然善于使用长矛,我将使他们的长矛无法刺杀,你们只管着看吧。”

    八月,曹*来到潼关,与马超等隔着潼关扎营。曹*表面上对马超急剧施加压力,暗中却派遣徐晃、朱灵率领步、骑兵四千人渡过蒲阪渡口,到黄河以西扎营。闰八月,曹*从潼关向北渡过黄河。士兵先过河,曹*单独与虎贲武士一百余人留在黄河南岸断后。马超率领步、骑兵一万余人前来进攻,箭如雨下,曹*仍坐在折凳上不动。许褚扶曹*上船。船工被流箭射中而死,许褚左手举起马鞍来为曹*抵挡乱箭,右手撑船。校尉丁斐,把曹军的牛马放出来引诱箸人,马超军大乱,兵士纷纷去抢牛马,曹*才得以渡过黄河。曹*大军就从蒲阪渡过西河,沿河作甬道,向南推进。马超等退守渭水流入黄河的渭口。曹*于是多设疑兵,暗中用船装载士兵进入渭水,修造浮桥。夜里,分兵到渭水南岸修筑营垒。马超等乘夜攻营,被伏兵击败。马超等在渭南驻军,派遣使者请求割让黄河以西土地,请求和解。曹*不答应。九月,曹*进军,全部渡过渭水。马超等几次挑战,但曹*仍然不许应战。马超等一再请求割让土地,并请求送儿子去作人质。贾诩部队认为可以假装同意,曹*再问他下一步的策略,贾诩说:“离间他们的联盟而已。曹*说:“我明白了。”

    韩遂请求与曹*相见,曹*与韩遂本来是老朋友,于是,他们两人来到阵前,马头相交,在一起说了很长时间,没有说到军事,只是谈论京都的往事与老朋友们,高兴时拍手欢笑。当时,马超等部队中的关中人与胡人都来围观,前后重重叠叠,曹*笑着对他们说:“你们是想来看曹*吗?我也是一个人,并没有四只眼两张嘴,只是智谋多一些罢了。”会面结束后,马超等人问韩遂说:“曹*说了些什么?”韩遂说:“没有说什么。”马超等有了疑心。另一天,曹*又给韩遂写了一封信,信中圈改涂抹了许多地方,好象是韩遂所改的,马超等更加怀疑韩遂。曹*于是与马超等约定日期,进行会战。曹*先派轻装部队进行挑战,与马超等大战多时,才派遣精锐骑兵进行夹击,大破马超等,斩杀成宜、李堪等。韩遂、马超逃奔凉州,杨秋逃奔安定。

    将领们问曹*说:“开始,敌军主力据守潼关,渭水以北的道路都空虚无备。但您不从河东进攻冯翊,反而屯兵在潼关之下,过了些日子再北渡黄河,是为什么?”曹*说:“敌军据守潼关,如果我军进入河东,敌军就会分兵把守各处渡口,我们便不能渡过西河。我故意以重兵集中在潼关,敌军就集中力量在南防守潼关,西河的戒备空虚,所以徐晃、朱灵两位将军能轻易取得西河。然后,我率大军北渡黄河,敌军无法与我争夺西河的原因,就在于两位将军已先驻军在那里了。我用车两和树木等,向南修建甬道,既是为了安全,也是向敌军示弱。渡过渭水后修筑营垒,敌人挑战而坚守不出,是使敌军骄傲自大;因此,敌军未修营垒,而请求割地。我答应了要求,所以顺从他们的意思是为了使他们自以为安全而不加防备。同时,我们养精蓄锐,一旦发起攻击,好比是迅雷不及掩耳。乐机变化莫测,不能执着于一种方法。”

    开始时,关中联军的每一部将领率军来到,曹*都面有喜色,部下将领们询问缘故,曹*说:“关中地区辽阔广大,如果他们各自据险坚守,我们征讨他们,没有一两年平定不了。现在,他们全都集中在一起,人数虽多,但互不相下,军队没主帅,可以一举消灭,比逐一征讨要容易,所以我心中喜悦。”

    冬季,十月,曹*从长安出发,向北讨伐杨秋,包围安定。杨秋投降,曹*恢复杨秋的爵位,让他留下来安抚部众。

    十二月,曹*从安定班师,留夏侯渊驻守长安,任命议郎张既为京兆尹。张既用怀柔的政策招集流亡在外的难民重返家乡,兴建恢复县城与村镇,受到百姓的拥戴。

    韩遂、马超叛变朝廷时,弘农、冯翊属下的县邑多起来响应,只有河东郡的百姓没有异心。曹*与马超等隔渭水相持,军粮全靠河东郡供给。到马超等被击败后,还剩下二十余万斛军粮。曹*因此提高河东郡太守杜畿的官秩为中二千石。

    建安十七年(公元212年)春季,正月,曹*回到邺城,献帝下诏,命令在曹*拜见皇帝时,司仪官只称他的官职,不称名字;准许曹*入朝见到皇帝时,不必迈小步向前急走,并可以佩剑穿鞋上殿,遵照汉初丞相萧何的先例。

    曹*西征关中时,河间人田银、苏伯造反,煽动幽州、冀州的百姓,引起混乱。五官中郎将曹丕打算亲自率军去征讨,功曹常林说:“北方的官员和百姓,乐于安定,厌恶战乱,服从朝廷的时间已很久,遵守法令的占多数。田银、苏伯等不过是聚集在一起的狗和羊,造不成多大的伤害。现在,我们的大军在远方,境外有强敌,将军镇守邺城,身系天下安危,轻率出军进行征讨,即使平定,也不足以显示威武。”于是,曹丕派遣将军贾信去讨伐,随即消灭叛军。还剩一千余人,请求投降,参预讨论的人都说:“曹公从前下过命令,凡是被包围后再投降的,一律不赦免。”程昱说:“这是在战乱时期所采取的一种临时应变策略。现在天下已基本平定,不能随便杀戮;即使要杀,也应当先向曹公报告。”那些人都说:“军事上的举动,可以专断,不必请示。”程昱说:“专断是指临时发生紧急情况。必须当机立断。现在,这些叛民控制在贾信手中,因此,我不愿将军擅作决定。”曹丕说:“对。”立即派人向曹*报告,曹*果然下令赦免不杀。后来,听到程昱的建议,非常高兴,说:“你不仅明了军事策略,还善于处理别人父子之间的关系。”

    过去的惯例,在击败敌军的文告中,杀死一人要报成十人。而国渊在报告斩杀人数时,都据实上报。曹*询问他原因,国渊说:“征讨境外的敌寇,多报杀死及俘虏人数,是为了炫耀武力,耸人听闻。河间在咱们的疆界以内,田银等进行叛乱,虽然取得胜利,建立战功,我心中却感到羞耻。”曹*大为高兴。

    夏季,五月,诛杀卫尉马腾,并把他的三族一齐处死。(这里马腾的死亡时间与《三国演义》中的就不同了)

    马超等人的残余部众驻守蓝田,夏侯渊率军讨伐,全部平定。

    县盗贼梁兴在冯翊抢掠。各县的官员十分害怕,都把县府移到郡府所在地。议论此事的人认为应当迁移到险要的地方去据守。左冯翊郑浑说:“梁兴等已经破散,陷藏逃窜到高山深谷,虽然还有人跟随,但大多数是被他胁迫的。现在,应当广开招降的途径,宣扬朝廷的威信,而据险自守这种作法是示弱。”于是,郑浑聚集官吏百姓,修整城郭,严加守备,招募百姓攻击叛民,获得叛民的财物和妇女,十分之七赏赐给夺取者。百姓大为高兴,都愿意追捕叛民。失去妻子的叛民,都回来请求投降,郑浑责令他们送来叛民所俘获的其他妇女,然后才还给他们的妻子。于是,这些叛民互相攻击,梁兴的党羽纷纷离散。郑浑又派有威望的官员和百姓分别到山谷去宣传朝廷的旨意,出来投降的人络绎不绝。郑浑于是命令各县的官员都把县府迁回本地,安抚百姓及投降的叛民。梁兴等恐惧,率领残部聚集在城,曹*派夏侯渊率军协助郑浑进行征讨,于是斩杀梁兴,余党全部平定。郑浑是郑泰的弟弟。

    到此曹*全面平定了关中,消除了后顾之忧。