杜预出身关中士族京兆杜氏。祖父杜畿是三国时期曹魏的名臣,魏文帝时任尚书仆射。杜预的父亲杜恕,长期居家不仕,魏明帝时任散骑常侍等职,他为人忠义、正直,与朝廷中的权臣关系不合,称病隐居。明帝去世后,被起用为河东太守。“高平陵之变”后,被减死发配,于嘉平四年(252年)卒于章武郡。
杜预虽然生长在官宦人家,但不是那种只知享乐的纨绔子弟。他从小博览群书,勤于著述,对经济、政治、历法、法律、数学、史学和工程等学科都有研究。他特别喜欢读《左传》,自称有“《左传》癖”。同时,杜预也明于国家兴废之道,常说:“立德是我无法企及的,立功立言差不多可以做到。”但因为父亲与掌权的司马懿有矛盾,所以他一直得不到任用。
嘉平三年(251年)司马懿死后,由其子司马昭接掌朝政。司马昭执政期间,司马氏已经成为曹魏政权最大的政治集团。司马昭在掌握了政权后,为了巩固、扩大统治基础,广招人才。在这一背景下,杜预也被用为尚书郎,同时娶了司马昭的妹妹高陆公主为妻。甘露二年(257年),河东人乐祥上书陈述杜畿的功绩,于是司马氏封杜预为丰乐亭侯,食邑一百户,承袭父爵。任尚书郎四年后,杜预转参相国府军事,成为司马昭的重要幕僚。
景元四年(263年)五月,魏军兵分三路,大举进攻蜀汉。杜预被委任为主力军统帅、镇西将军钟会的长史。魏军攻灭蜀汉后,钟会联合蜀汉降将姜维谋反,准备杀害同行的魏将,以割据益州。次年(264年)正月,钟会在实施计划时,被乱兵杀死。在这场变乱中,钟会的许多僚属都遇害,只有杜预凭借智慧幸免于难。事后,杜预被增封食邑一千一百五十户。
咸熙二年十二月丙寅日(266年2月8日),司马昭之子司马炎代魏称帝,建立西晋。杜预转为晋臣,并于泰始(265年-274年)中期担任守(代理)河南尹一职。
自咸熙元年(264年)起,司马昭委托荀勖、贾充、裴秀、郑冲等人改制礼仪、法律、官制。其中车骑将军贾充等负责制订律令,杜预也受命参与法律的制定。这部法律即是泰始四年(268年)颁布的《晋律》,它上承《汉律》,下启《唐律》,对后世的封建法律有很大的影响。名义上主持修律的官员是贾充,而实际上杜预担负了最繁重的劳动,《晋律》的所有注解都是由他完成的。
在任河南尹时,杜预认为洛阳是教化天下的基点,由近到远,但凡施政行文,务必以国家大政方针为准。他受诏制定了升降赏罚官吏的考核条例,建议仿效唐尧的上古之政,去繁从简,顺其自然;同时认为要选拔明达的官员,各自考核辖区内的官吏。任职一年后,每年各选上等、下等者一人,以六年为期,拔擢优者,裁汰劣者。以此来改变当时官场相互包庇的陋习。随后,他受到了素来不和的司隶校尉石鉴的弹劾,被免去职位
泰始六年(270年)六月,司马炎启用杜预出镇边关,先为安西将军军司,后任秦州刺史领东羌校尉、轻车将军。杜预刚刚在秦州就任,石鉴也以安西将军之职都督秦州诸军事,成为杜预的上司。
当时,杜预所在的陇右地区很不安定,河西鲜卑首领秃发树机能起兵造反,势力很大,司马炎派去镇压的将领,不是战败,就是被杀。石鉴官报私仇,命令只有三百士兵、百匹战马的杜预出击。杜预识破石鉴的阴谋,不肯去送死。他顶撞石鉴说,草盛马肥的六月根本不适合同鲜卑人作战,另外政府军队的兵源给养问题也必须集中力量预先解决,所以交战的时间只能定在第二年的春天。杜预把他的意见归纳为“五不可,四不须”。杜预拒绝出兵,激怒了石鉴。石鉴以杜预擅自装饰城门、官舍,“乏军兴”为由,将他逮捕并送交廷尉治罪。多亏杜预驸马的身份,在“八议”的赦免范围,才保住性命,但仍丢掉了爵位。不久,石鉴在一次战斗中,被秃发树机能打得惨败,事实证明杜预的意见是正确的。
泰始七年(271年)十一月,居住在山西地区的匈奴人在酋帅刘猛的带领下武装暴动。由于杜预明于筹略,善于规划,朝廷重新启用,命他以“散侯”身份参谋军国大谋。很快,他被任命为度支尚书,掌管政府的经济财政事宜。此后一直到咸宁四年(278年),杜预共担任了七年的度支尚书。其间,因为石鉴回师后报功不实,与杜预互相攻击,二人一并被免职,杜预再次“以侯兼本职”。数年后,仍被授为度支尚书。
在任上,杜预共向晋武帝提出过五十多项治国治军的建议,其中包括常平仓的兴建、谷价的调整、盐运的管理、课调的制定和边防的建置等等。此外,他还充分施展自己的聪明才智,积极进行科学发明。杜预成功制造人排新器,并复制出久已失传的欹器(周朝太庙的礼器),献给司马炎,受到司马炎的称赞。
泰始十年(274年),武元皇后杨艳逝世。后来,武元皇后的灵柩将迁到峻阳陵。按旧丧制,安葬以后,皇帝和群臣即可以脱孝服。尚书上奏,认为皇太子也应脱孝服。杜预提议“皇太子应守古代丧制,服丧三年”,司马炎同意。
为了解决洛阳的交通问题,他力排众议,在孟津渡口主持修建了富平津大桥。在建桥过程中,从设计到施工杜预都付出了极大的心血。桥建成后,司马炎带着百官到桥边设宴,举杯向杜预祝酒说:“不是你,此桥是不能建成的。”杜预回答说:“不是陛下的英明,臣也不能施展微小的技巧。”杜预发现当时通行的历法不合晷度,经过计算,纠正了其中的差舛,修订出《二元乾度历》。此历经过验证,终于取代时历,通行于世。