贾诩年少时并不出名,只有当时名士阎忠认为他与众不同,说他有张良、陈平那样的智慧。贾诩早年被察孝廉为郎,因病辞官,向西返回家乡到达汧地,路上遇见氐人,和同行的数十人一起被氐人抓获。贾诩说:“我是段公的外孙,你们别伤害我,我家一定用重金来赎。”当时太尉段颎,因为久为边将,威震西土,所以贾诩便假称是段颎的外孙来吓唬氐人,氐人果然不敢害他,还与他盟誓后送他回去,而其余的人却都遇害了。贾诩拥有如此随机应变处理事情的才能,像这样的事情很多。
东汉灵帝中平六年[189年],董卓侵入洛阳,开始控制中央政权。贾诩以太尉掾的身份成为平津都尉。
后来升为讨虏校尉。当时董卓的女婿牛辅屯兵于陕,贾诩就在牛辅军中。
献帝初平三年[192年],董卓被王允、吕布等人谋杀。不久,牛辅也在逃窜中被部下所杀,众人恐惧。董卓部下李傕、郭汜、张济等人无所依靠,便遣使去长安请求赦免。王允为人刚直,竟没有同意,李傕等人更加恐惧,不知所为,准备各自解散部队,逃回乡里。贾诩为求自保,便出面阻止了他们,说:“听说长安传闻要杀尽西凉人,要是你们弃众独行,一个亭长就能把你们抓住。不如带领部队向西,沿途收敛士兵,再进攻长安,为董卓报仇,如果能够幸运地成功,就可以在朝廷的名义下征讨全国,如果不能成功,再逃走也不迟。”这个计划被众人采纳。李傕等以替董卓报仇为名,联络西凉诸将,率军袭击长安,等到长安城下,已聚合十余万人。李傕与樊稠、李蒙等围攻长安城,因城防坚固而不能攻克。后由城内叛变士兵引导李傕军入城,与守将吕布展开巷战,吕布兵败,仅率百余骑出逃。李傕等纵兵掳掠,吏民死者万余人,尸积满道。一时间,京城腥风血雨,朝野大乱。
事成后,贾诩被任命为左冯翊。李傕等以贾诩之功欲封其为侯,贾诩说:“这是保命的计谋,哪有什么功劳?”坚决不受。李傕等又让贾诩为尚书仆射,贾诩说:“尚书仆射是百官的师长,是天下的榜样,我贾诩一向没有什么名望,难以服人。就算我可以贪享虚荣,对国家又有什么好处?”于是改拜贾诩为尚书,掌管选拔人才,多选旧名以为令仆,在人事方面多有贡献,李傕等人亲近贾诩但同时也很惧怕他。李傕等破长安后,既惧关东图己,也畏统兵数万屯在中牟的朱隽之名。结果李傕用贾诩计,使人征朱隽为太仆。
不久,贾诩的母亲去世,贾诩辞掉官职,后来又被拜为光禄大夫。
兴平二年[195年],李傕、郭汜、樊稠三人互相猜忌,争权夺利,争斗起来,李傕使骑都尉胡封刺死樊稠。不久,李、郭之间矛盾日益激化,开始交兵,傕等与贾诩商议是否迎天子置其营中。贾诩不同意,因胁天子是非正义的,但李傕不听。张绣对贾诩说:“此处不可久留,君何不走?”贾诩答他受国恩,义不可背。你能自行,但我不能也。
李傕请贾诩为宣义将军,来帮助自己。李傕曾召羌、胡数千人攻省门,献帝向贾诩求教,贾诩乃密请羌、胡大帅赴宴后,许以封爵重宝令他们退走。李傕由此衰弱。后来,李、郭二人讲和,放出被劫持的献帝和朝臣,对此贾诩作出了很大努力。献帝东走为李傕所追,司徒赵温、太常王伟、卫尉周忠、司隶荣邵素来为李傕所嫌,欲杀之。幸得贾诩所劝阻李傕才不杀。
之后贾诩便上还官印。当时将军段煨与贾诩同郡,屯驻华阴,贾诩去投靠段煨。贾诩向来知名,为段煨军所敬服,段煨心里怕贾诩夺其兵权,但在表面上对贾诩十分礼遇。贾诩看出后,心不自安。南阳张绣与贾诩暗中有来往,张绣便派人去迎接贾诩。贾诩临行时,有人对贾诩说:“段煨待你这么好,你为何还要离去?”贾诩说:“段煨生性多疑,有猜忌我的意思,待遇虽然优厚,却不可依靠,待久了一定会被他所害,而我离开他一定很高兴,又指望我连结外援,一定善待我的家人。而张绣缺乏谋士,也很愿意得到我,这样我和我的家人都能够得到保全。”贾诩到达张绣处,张绣果然大喜,率子孙前来迎接。而段煨知道贾诩离去,也果然善待其家人。
建安二年[197年],曹操南征,张绣投降。但因曹操太祖纳其叔张济的遗妻而令张绣所恨。曹操得知其不悦,密有杀张绣之计。但计策泄漏,张绣便用贾诩计,向曹操请示徙军就高道,道由太祖屯中。又说:“车少而重,请许其兵士各自被甲。”太祖信绣,皆听之。张绣掩袭曹操,大败,曹操长子曹昂、侄儿曹安民、爱将典韦皆因此役而亡。贾诩劝说张绣与刘表连和。
建安三年[198年],曹操南征张绣,包围张绣据守的穰城。不久,曹操闻袁绍欲趁虚袭取许都,便立即从穰城撤退。张绣率兵尾随追击,刘表也派荆州军占据安众,切断曹军退路,企图与张绣夹击曹军,曹操出奇兵大败张、刘联军。曹军获胜后,速行北撤。张绣亲自率兵追击,贾诩劝阻说:“不可追,追必败。”张绣不听,强行追击,被曹操亲自断后击败。贾诩这时又对张绣说:“赶快再追,一定会获胜。”张绣说:“不听你的建议才落到这种地步,现在已经败了,为何要再追?”贾诩说:“形势已经起了变化,赶快去追准能获利。”张绣听从贾诩建议,收集散兵,再行追击,竟将曹操后卫部队击溃。得胜后,张绣问贾诩请教是怎么回事,贾诩解释说:“这很容易明白。将军虽擅于用兵,但不是曹操的对手。曹军刚撤,曹操一定亲自断后,我们的追兵虽精,但将领比不过他们,他们的士兵还很有士气,所以我知道将军你必败。曹操之所以还未尽力就已撤兵,一定是后方出了事,所以击破将军的追兵后,一定会全力撤退,留别人断后,他留的将领虽厉害,却比不上将军,所以我知道将军用败兵也能取胜。”张绣大为佩服。
建安四年[199年],袁绍遣人招降张绣,并与贾诩结好。张绣准备同意,贾诩却当着张绣的面回绝了袁绍的来使,准确地指出袁绍连兄弟袁术也不能容下,岂能容天下国士。而投降曹操有三点优势:曹操挟天子令诸侯,名正言顺;曹操兵力较弱,更愿意拉拢盟友;曹操志向远大,一定能够不计前嫌。张绣听从贾诩的建议,率众归顺曹操。曹操闻讯后大喜,亲自接见贾诩,执其手说:“使我的信誉扬于天下的人,是你啊!”曹操拜贾诩为执金吾,封都亭侯,迁冀州牧。由于当时冀州为袁绍所占,贾诩便留参司空军事。
建安五年[200年],曹操与袁绍战于官渡。曹军军粮用尽,曹操问计于贾诩,贾诩说:“您在精明、勇敢、用人、决断四个方面都胜过袁绍,之所以相持半年不能过取胜,是想顾及周全啊,抓住机会,便能很快取胜。”曹操称善。后来许攸来投时众皆狐疑,唯贾诩和荀攸劝曹操抓住机会偷袭乌巢,终一举战胜袁绍。
建安九年[204年],河北平定后,曹操领冀州牧,改任贾诩为太中大夫。
建安十三年[208年],曹操占领荆州,想乘机顺江东下。贾诩劝阻,说应该安抚百姓,等待时机,曹操不从,结果在赤壁之战中大败而归。
建安十六年[211年],曹操于渭南于马超交战。后来,马超军不利,提出划地为界的要求,并送子为人质。贾诩认为可以表面上假意应允,麻痹对方,实际积极准备,伺机歼敌。曹操又问贾诩如何破敌,贾诩说:“离间他们。”曹操采用他的计谋,写书离间马超和韩遂,使他们内乱。曹操视时机成熟,主动对关中军发起进攻,大胜而归。
当曹操仍未立太子时,曹丕曾派人向贾诩问计,贾诩说:“希望将军修养品德,勤于学习,日夜孜孜不倦,不违背作儿子的道义,这就够了。”曹丕听从了他的建议,刻意磨练自己。后来,曹操私下问贾诩对立嗣的看法,贾诩闭口不答,曹操问他为何不答,贾诩说:“我在想袁绍和刘表啊。”曹操大笑,于是便立曹丕为太子。贾诩认为自己非曹操旧臣,却策谋深长,所以怕曹操猜嫌,于是采取自保策略,闭门自守,不与别人私下交往,他的子女婚嫁也不攀结权贵,当时天下谈论智谋之士时都十分推崇他。
魏文帝黄初元年[220年],曹丕即位,封贾诩为太尉,进爵魏寿乡侯,增食邑三百,前后共八百户。又分食邑二百,封幼子贾访为列侯,以长子贾穆为驸马都尉。
黄初四年[223年],当初,曹丕便问计于贾诩:“我想统一天下,吴、蜀应先征讨哪个?”贾诩建议应先治理好国家,并指出蜀、吴虽小国但有山险和精锐水军。刘备有雄才,诸葛亮善治国;孙权识虚实,陆逊见兵势。出兵也未见有万全之势,但曹丕不听。
曹丕三路伐吴,以失败告终。同年贾诩去世,终年七十七岁,谥肃侯。长子贾穆继嗣。