杜预字元凯,京兆杜陵人。祖父杜畿,是魏尚书仆射。父亲杜恕,是幽州刺史。杜预博学多所通晓,明于国家兴废之道,常说:“立德是我不能做到的,立功立言差不多可以做到。”当初,杜预的父亲与宣帝司马懿不和,被幽禁而死,所以杜预长久不得调升。

文帝嗣位,杜预娶文帝的妹妹高陆公主为夫人,开始拜为尚书郎,继承祖父丰乐亭侯的爵位。在职四年,转为参相府军事。钟会伐蜀,以杜预为镇西长史。钟会谋反,他的僚属官佐都被害,只有杜预靠他的智慧得免于祸,增加封邑一千一百五十户。

杜预与车骑将军贾充等制定律令,完成之后,杜预为律令作了注解,并向皇帝上奏说:“法律是判决案件的准绳和范例,并不是详细探究事理和人性的书,所以文字简约而例子明显,允许做的和禁止做的都省约简要。例子明显则人们容易看到,禁令简要则人们不易犯法。容易看到的人们就知道回避,不易犯法则刑法就会少用。刑法之本在于简要明显,所以必须审订名分。审订名分不要拘于细微末节。古代的刑书铭刻在钟鼎上,铸在金石上是为了堵塞与刑法相违背的规定,避免执法人巧使舞弊,滥作解释,现在我所注的是将刑法的内容提纲挈领,区分名分。使用法的人按照名例审定取舍,循绳墨之直,避免像折薪一样随意砍削。”皇帝下诏,将此律令与注解颁布于天下。

泰始年间(265~274),为河南尹。杜预以为京师是教化天下的基点,由近到远,凡施政行文,务必以国家大政方针为准。杜预受诏命制定了升降赏罚官吏的考核条例,大致内容是:“臣闻上古之政,主要是顺应自然,自己有虚心诚意,人民相应地也会信赖顺从,自己心神通畅,天下的事就会顺理成章。后世淳朴之风渐散,表彰美的,显示恶的,设官分职,颁赐爵禄,宣布六典,详细考察。然而还要依靠明哲的辅臣,安置忠贞的有司,使名位不得超过他的功劳而独擅美名,也不得使功劳被隐蔽而与名位不符,为政者都能咨询采纳各方面的意见。到了末世,不能以大道治国,而求助于稠密细碎的法律条文,心有疑就相信耳目,怀疑耳目就相信书简。书简愈繁,官方愈伪,法令愈明,巧饰愈多。昔日汉代刺史,岁终也向朝廷上奏,不制定考核条款,只粗略举出官吏的清浊。魏朝建立考课制度,继承了汉代京房的遗意,条文十分细密。然而由于条文细碎而违背大体,所以历代都行不通。不若重申唐尧的旧制,去密而就简,则简明而易行。顺应万物之理,心领神会,善恶存于人心。抛开人而专用法,则会伤害理。现在考核荐举优劣,莫若委任明达的官员,使各自考核自己辖区的官吏。任职一年以后,每岁挑优者一人为上等,劣者一人为下等,统计以后报于朝廷。这样考核六年,主办此事的人总集案卷,那些六年都是优的提拔任用,六年都是劣的上奏免官,那些优多劣少的仍旧录用,劣多优少的降职。现行考核的品位,所指对象不一样,标准确实有高有低。若照标准高的条文取为优,照标准低的条文就不能评优,主持此事的应当衡量轻重,略微下降,不必尽扣法律条文。己丑诏书认为考课制度难以实行,可听凭典型例子,推荐例子的理由根据,也是来自舆论风声。过六年突然来一次推荐,升降赏罚没有平时的依据,这又不是古代进行三年一考的意思了。现在每年一考,优积多者可以升,劣积多者可以降。以士人君子之心衡量,没有在原职六年六次罢黜清廉有能者,六次进用劣下者。监司也会随时弹劾这些人。如令上下公开互相包容过错,这会使清廉之议颓丧,对官吏的升降也无所取。”

司隶校尉石鉴因为与杜预有宿怨,上奏弹劾杜预,被免职,当时胡虏侵扰陇右一带,皇帝以杜预为安西军司,给兵三百人,马百匹。到达长安,又加秦州刺史、领东羌校尉、轻骑将军、假节等职衔。当时胡虏兵强盛,石鉴为安西将军,使杜预出兵击胡虏。杜预以为胡虏乘得胜之势,马匹肥壮,而官军孤悬敌境而又困乏,应积蓄力量以待时机,春天才能进讨,因而陈述了五不可、四不须的意见。石鉴大怒,又奏杜预擅自修饰城门官舍,使军队困乏,派御史槛车将杜预囚送廷尉。因为杜预妻是公主,符合刑法中八种减刑的条件,判定以侯爵赎其罪。此后陇右的军事情况和杜预分析策划的完全一样。

当时朝廷上下都认为杜预有筹划策略的才能,又值匈奴统帅刘猛举兵反晋,占领并州西部及河东、平陽一带,皇帝下诏让杜预以散侯的身份在宫中出谋划策,不久又拜为度支尚书。杜预上奏建议籍田和安边政策,讨论处理军国要事。又作人排新器,兴常平仓,定谷价,计算盐运,制订考课制度。类似这样内以利国外以安边的建议有五十多条,都被皇帝采纳。石鉴从军中回京师,报功不实,为杜预所弹劾,二人遂互相仇恨,有时大吵大闹,为此两人都免了官,杜预保留侯爵,兼原来的职务。几年之后,又拜为度支尚书。

元皇后的陵墓将迁到峻陽陵。按旧丧制,安葬以后,皇帝和群臣即可以脱孝服。尚书上奏,认为皇太子也应脱孝服。杜预提议“皇太子应守古代丧制,服丧三年”,皇帝听从了这个意见。

杜预以为时历有差错,与晷度不合,制订了《二元乾度历》上奏皇帝,推行于世。杜预又以为孟津渡口不安全,渡船常有翻没的危险,请求在富平津建桥。议论此事的人以为殷和周的都城都靠近孟津,历代圣贤都不曾在此建桥,必然是这里不可建桥。杜预说:“造舟为梁,就是建河桥。”桥建成以后,武帝带着百官到桥边举行宴会,举杯向杜预祝酒说:“不是你,此桥是不能建成的。”杜预回答说:“不是陛下的英明,臣也不能施展微小的技巧。”周朝太庙里的欹器,到东汉时还放在皇帝御座旁,汉末大乱时失踪,形状和制作方法也失传。杜预发挥自己的创造才能,制成一个欹器送给武帝,武帝非常赞叹。咸宁四年(278)秋,连绵大雨,又发生蝗灾,杜预上疏陈奏了很多要事,这些事载于《食货志》。杜预在宫中七年,斟酌处理国家大事,不可胜数,受到朝野的赞美,号称“杜武库”,是说杜预心中无所不有。

当时武帝秘密制订了灭吴计划,而朝臣议论多有不同意见,只有杜预、羊祜、张华与武帝意见相合。羊祜病重时推荐杜预代替自己的职务,因而以本官假节行平东将军,兼征南军司。羊祜死后,杜预拜为征南大将军,都督荆州诸军事,赐给追锋车和第二驸马。杜预到任后,修缮甲兵,耀武扬威,选拔一支精锐军队,袭击吴西陵督张政,大破张政军。因有功增封三百六十五户。张政是吴的名将,占据要害地方,因无防备而失败感到羞耻,不把失败受损的实情报告吴主孙皓。杜预想离间吴主与边将的关系,向朝廷上表,把俘获的吴军归还给孙皓。孙皓果然把张政召回,派武昌监刘宪代替他。所以大军临吴境时,吴国将帅徙移变换,造成动荡不安的形势。

杜预安排妥当以后,就请示伐吴的时间。武帝答复待明年大举伐吴,杜预上表陈述伐吴的理想计划,他说:“自闰月以来,吴贼只是严加戒备,没有调兵到上游。以常理和形势推断,吴贼已穷于计谋,力不能东西两全,必先护上流,尽力保住夏口以东,以苟延残喘,没有理由把更多的兵力调到西境,让国都空虚。陛下过于听信朝臣之计议,因而便放弃灭吴大计,放纵敌人就会给自己带来灾祸。这确实是国家的长远大计,假如实行这个计划会失败,不实行也是可以的。为事情制订计划当然务求完善牢靠。如果成功,则会开辟太平的基业;不成功,不过费些时光,为什么就不肯试一试呢?如等到后年,天时人事变化无常,臣恐那时会更加困难。陛下平时的意见,是分别命臣等随边界进军,各军的进退要东西同步,这是万全之举,没有倾败的顾虑。臣对这些是明了的,不敢以自己的暧昧见解带来不良后果。望陛下明察。”杜预在一月之内又向武帝上表说:“羊祜与朝臣意见多不同,不事先与朝臣筹划,而秘密与陛下施此计,这就更加有不同意见。凡事都应该把利与害作比较,今行此计划,十之八九有利,其余十之一二至多无功而已。那些认为这个计划必然破败的形势并不存在,只是此计划不是出于他们自己,有功也没有自己的份儿,耻于收回不愿战的意见,所以抱住原来的主张不放。近来朝廷事无大小,异议蜂起,虽然各人的想法不同,也多由于依仗陛下的恩宠而不顾国家前途,轻率地表示不同意见。昔日汉宣帝议赵充国所上表,实施以后成功,宣帝斥责那些持异议的人,这些人都叩头谢罪,这样是为了堵塞异端。自今秋以来,讨贼的好形势已很明显。如今日中止行动,孙皓恐怖而生他计,或迁都武昌,修好江南诸城,使其居民远迁,城不可攻,野无所获,把大船集中在夏口,则明年攻吴计划就来不及了。”当时武帝正与中书令张华下棋,杜预的表到了,张华把棋推开说:“陛下圣明神武,朝野清静,国富兵强,号令如一。吴主荒婬骄奢而暴虐,杀害贤能。当今伐吴,不费功夫即可成功。”武帝即答应了杜预的伐吴计划。

杜预在太康元年(280)正月,陈兵于江陵,派遣参军范显、尹林、邓圭、襄陽太守周奇等,率兵沿江西上,授给节度之职,一旬之中,连克城邑,都和杜预策划的一样。又派遣牙门将管定、周旨、伍巢等,率奇兵八百,驾船夜渡长江,偷袭乐乡,树起很多旗帜,在巴山点起火,然后出击要害之地,奇取吴贼指挥中心。吴都督孙歆震惊害怕,给伍延写信说:“从北方来的晋军,真是像飞过长江一样。”吴地男女投降的有一万多人。周旨、伍巢等在乐乡城外埋伏,孙歆派兵抗拒晋将王氵睿,大败而还,周旨等率伏兵跟在孙歆败军后面入城,孙歆没有发觉。直至军帐下,俘获孙歆而还。所以军中编了个歌谣说:“以计代战一当万。”于是进逼江陵。吴督将伍延假称请求投降,而仍在城墙上列兵防守,杜预攻下了江陵城。长江上游已经平定,于是沅湘以南直至交趾广州,吴之州郡都望风归顺,奉送印绶。杜预仗节以皇帝诏命安抚降者。总计斩杀及俘虏吴都督、监军十四,牙门将、郡守一百二十多人,又借此兵威,迁徙将士及屯戍人家以充实江北。南郡故地都安置了地方官,荆州大地安宁有序,吴人投奔而来的,像归家一样。

王氵睿先上表说得了孙歆的头,接着杜预将活孙歆送到京师,洛陽人都当着一个大笑话。当时各路军将领聚会商量灭吴之事,有人说:“已有百年经历的吴寇,难于一下子灭掉。当今酷暑即将到来,将会有雨涝,生瘟疫,应等到冬天大举进攻。”杜预说:“昔日乐毅借助于济西一战而并吞强齐,今我军威已振,譬如破竹竿,劈开数节之后,其余就会迎刃而解,不须着手用力了。”立即指挥群帅,直逼秣陵,所过城邑,无不束手投降。原来认为不能立即平吴的人,写信向杜预道歉。

孙皓平定以后,杜预率师凯旋而归,因功晋爵为当陽县侯,增加封邑连以前的共九千六百户,封其子杜耽为亭侯,食邑千户,赐绢八千匹。

当初进江陵时,吴人知道杜预颈上有瘿,又怕其计谋,在狗颈上拴个葫芦给杜预看,每棵有瘿的大树,都在瘿上砍出一块白的,写上“杜预颈”字样。城破以后,杜预把干这些事的人捉起来杀了。

杜预回镇以后,屡次向皇帝陈述自己家世任职,以为武将不是自己所长,请求退职。皇帝不许。

杜预以为天下虽安,忘战必危,因而勤于讲武,建立学校,江汉人民无不怀念其德,教化广被万里。开凿山洞,设置关隘,派兵屯守要害之地,以维护巩固太平形势。又修治邵信臣的水利遗迹,引氵蚩、氵育诸水,灌溉田野一万余顷,田野划分区域,刻石为界,公私同利。百姓仰赖杜预而得利,称之为“杜父”。

杜预对公家之事,凡所知者无不尽力而为。凡他设计兴造的工程,必进行周密的考察测度,很少有失败的。

杜预喜欢传名后世,常说“高岸为谷,深谷为陵”,刻了两个石碑,记载他的功勋,一个沉在万山之下的水中,一个立在岘山之上,说:“谁知道此地以后会不会高山变深谷,深谷变高山呢?”

杜预身不跨马,射箭不能穿透木札,然而每遇征伐大事,他都居将帅之列。交友接物,恭敬有礼,有人求教,则尽其所知而答,诲人不倦,做事敏捷而言语谨慎。立功之后,闲暇无事,即专心钻研经籍,著《春秋左氏经传集解》。又参考各家谱第,成书称为《释例》。又作《盟会图》、《春秋长历》,成为完备的一家之学,到老年才完成。又撰《女记赞》。当时论者认为杜预文章质直,未被世人重视,只有秘书监挚虞很欣赏,说:“左丘明本是为《春秋》作传,而《左传》却单独流行。《释例》本是为《左传》而设,所阐发的道理不限于《左传》,所以也单独流行。”当时王济懂得相马,又很爱马,而和峤喜欢聚敛财物,杜预常称“王济有马癖,和峤有钱癖”。武帝听到后对杜预说:“卿有何癖?”杜预回答说:“臣有《左传》癖。”

杜预镇守荆州时,几次给洛陽的权贵要人送礼物。有人问为什么要这样做,杜预说:“我只怕被陷害,不求得益啊!”

杜预当初在荆州因为宴会喝醉了酒,睡在书斋中,外边人听到书斋中有呕吐声,偷偷从门缝中窥视,只见一条大蛇垂头呕吐。听到此事的人都感到很惊异。后来征召到京城作司隶校尉,加位特进,行至邓县而死,终年六十三岁。武帝很悲悼,追赠为征南大将军、开府仪同三司。谥号为成。杜预死前写了一个遗令说:“远古之人不合葬,他们明白死生之道,生则有识,死则全无。中古圣人改为合葬,大概以为分葬合葬本无定则,主要是为了示教于生者。自此以后,大人君子或合葬或分葬,人生的事还没有弄清楚,哪能知道死后的事,所以各以自己的愿望行事。我以前做台郎,曾因公事经过密县的邢山。山上有一坟墓,问农夫,说是郑大夫祭仲的墓,或说是子产的墓,遂即率领随从人员去祭奠参观。坟墓造在山顶上,四望无遮无碍,山脉南北走向而墓斜向东北,朝新郑县城,意为不忘故国故乡。墓的隧道只堵塞后面而前面敞开,不填土,告诉人们里面没有珍宝,不需要重隔深埋。山上多美石而不用,必收集洧水边之自然卵石砌墓,以不劳工巧为贵,且此石于世上无用。此种葬法君子推崇其有节俭之情,小人从中无利可取,所以经历千载而完整无损,这是由俭得来的。我去年春天入朝,因郭氏丧亡,按陪陵的旧制,自己上表在洛陽东首陽山之南营造将来的墓地。所得的地盘中有一小山,其高显然比不上邢山,然而东仰二陵,西望宫阙,南观伊、洛,北望夷、叔,旷然远望,心情安适。所以就栽树开道,作好建墓准备。到时候都用洛水圆石,开隧道向南,规模样式仿效郑大夫,想以俭约来保全坟墓,棺木、器皿、衣物,都要与此相称。”子孙们就按遗嘱安葬了他。儿子杜锡继嗣。