攻下函谷关,文莱听从董宁的建议,不攻击长安,在营帐外设置埋伏。果然,敌将张济偷袭营寨中计,大败。文莱建议孙坚让祖茂领军二千追击,曹操手下夏侯渊领军二千在后援助,四军共五千在最后缓缓进军,留徐庶兵一千驻守大营。文莱给王泽寄信:今大破函谷关,将至长安。庐江郡、晋阳郡有何风吹草动即寄信与我。切要管好四军人,必要时吾再有信让他们来攻长安。
祖茂带兵二千继续追击。张济靠近长安,得到马岱、樊稠、吕布手下高顺的援助。文莱闻知,飞马让祖茂小心:高顺统领吕布所带的陷阵营。文莱在前阵大骂:“樊稠,你主李傕在我营叛反!是被吾所斩!有何能耐,报仇来?”樊稠大笑,亲自出阵。文莱命令夏侯惇上阵,十回合斩了樊稠。文莱指挥大军掩杀,大败张济军。高顺退后十里,陷阵营,布阵,抵抗文莱军。文莱知道陷阵营的厉害,和高顺对峙。高顺发现了文莱的害怕,带陷阵营冲杀。文莱军大乱。文莱指挥士兵抵挡,还是大败。曹操到了,文莱建议曹操:“吕布陷阵营,曹公在董卓下便有所耳闻。望曹公可出虎豹骑以挡!”曹操毫不犹豫,让虎豹骑抵挡高顺。文莱心想:曹操已经很信任自己了。公孙瓒到了,白马义从也参战,大败陷阵营。
因为董卓军队屡屡失利,吕布亲自和张辽率领大军三万来去长安途中抵挡文莱。文莱闻知,再给王泽寄信:今三姓家奴吕布亲率大军三万来挡,我军兵数不及一万(战死七八百),恐无法抵挡,请太守让吾家庞德带兵二万来助。文莱见吕布军要到,逐渐急躁。曹操来安慰:“古代名将能以少胜多,吾等为何不能?且敌军仅三万!”文莱鼓起勇气,曹仁军前布下八门金锁阵,白马义从居中,虎豹骑断后,文莱命名为三门精军,意思是三个部队的精兵组建的军队,由曹仁、赵云、曹休统领。各个势力都有他们的强大队伍,我也要组建一个!见曹操对文莱说:“三军有三将,却无大将统领,会有争权之害。君破二次函谷关,与赵子龙是挚友,在三军中颇有名望可统军。”文莱接受了。他和甘宁带领三军绕路到长安,让长安城举火报警。吕布收到急讯,自己和马岱、高顺领军一万回长安守城,让张辽带领徐荣、张济、胡轸。文莱领军再绕回正面,让曹休的虎豹骑留下来埋伏吕布。文莱率领两军飞快从后方突袭吕布,吕布军大乱,逃去长安,前面虎豹骑截杀,大败吕布。忽然传来急报:庐江山贼暴发。文莱打算退军去庐江攻击山贼,甘宁说:“廖化、赵岑两人和睦,山贼不识兵法,仅靠他二人可击破!”文莱犹豫不决,最终决定听甘宁的话。吕布大败,陷阵营破灭,高顺迫降文莱,吕布和剩余的十几人逃回长安。后面张辽领兵追击,文莱正处理着高顺投降的事情,打算押回庐江,军队又慌乱而逃。文莱指挥军队,但还是没有反败为胜。忽然见一骑冲到文莱马前,是胡轸!文莱慌乱和他交战,甘宁忽然上来生擒胡轸。徐荣在乱中被曹仁生擒。赵云赶来营救,张辽军也乱。文莱转兵战张辽。只见张辽带兵东边打,西边攻,四处突袭,出其不意,攻其不备。文莱心想:孟德有张辽,吾有甘兴霸!让甘宁迎战。大战许久,文莱心生一计:让甘宁与张辽单挑,文莱悄悄退去,甘宁以蛮力完全可以战胜张辽!张辽见文莱军退去,让自己的士兵也到旁边观战。只见甘宁很快打飞张辽头盔,张辽军来援,文莱军猛攻,击退张辽军,捉住张辽。
“我知君忠心耿耿于汉室,却不知董贼与三姓家奴吕布劫持汉皇帝。”文莱见徐荣、胡轸皆降,只有张辽不降,便劝说,“你本是聂氏后代,是汉人,却帮助敌人为非作歹。这该当何罪?我们看在西汉武帝聂氏献计有功,且不计你罪。又不降,是何意?决定忠于反,反于汉?”于是,文莱令人将提前制造好的长矛送给张辽看。这长矛上面记载着聂氏西汉武帝时被匈奴大败的信息,文莱起名为“聂氏”。