杜衍字世昌,越州山阴人。父亲杜遂良,官至尚书度支员外郎。杜衍束发苦志厉操,尤其酷爱读书。考中进士甲科,补扬州观察推官,改任秘书省著作佐郎、知平遥县。朝廷使者推荐他,任晋州通判。
诏令推举品质优良的官吏,杜衍被提升为乾州知州。陈尧咨安抚陕西,朝廷诏令藩府赐宴,陈尧咨到乾州,由于杜衍有才能,特地赐宴,于是将杜衍调任凤翔府知府。到罢官回乡,二州的老百姓将杜衍阻拦在州境上,说:“为什么要调走我们贤明的太守呢?”以太常博士提点河东路刑狱,升任尚书祠部员外郎。巡视潞州,澄清冤案,知州王曙因此写了《辨狱记》。高继升任石州知州,有人报告说高继升勾结外族策划变乱,将其逮捕捉拿,久不判决,杜衍辨明这是一起冤案,于是将诬告者治罪。宁化军守将将人审讯定为死罪,案情不实,杜衍反复核实加以改正。守将不伏罪,上诉朝廷,诏令刑狱复审,果然罪不当死。移任京西路,又调任扬州知州。有司上奏杜衍辨别冤狱依法当受赏赐,升职刑部。章献太后派遣使者安抚淮南,使者回京,还没有说其他话,就问杜衍是否安康,使者将杜衍的治理情况向太后做了汇报。太后感叹说“:我知道很久了。”
调任河东转运副使、陕西转运使。奉召任三司户部副使,提升为天章阁待制、知江陵府。未到任,恰遇河北军费缺乏,转为都转运使,升为工部侍郎,不向老百姓征收赋税而军费充足。回京,任枢密直学士,求出京补外,以右谏议大夫知天雄军。
开初,杜衍为政严谨细密,不用严刑来督责官吏,但官吏和百姓也畏惧他的清廉严整。仁宗特地召他为御史中丞。杜衍上奏说“:中书、枢密,是古代所说的三事大臣,也就是所谓坐而论道之人。如果只逢双日进对前殿,又凭什么来全知天下之事呢?应不断地召见他们,赐坐便殿,来敬献可否之议,其他,就不必亲自烦劳陛下了。”又议论常平法说“:年成有好有坏,因而谷价有高有低,官府用法律来平抑价格,那么老百姓能获利。如今富商大贾,乘粮价低时收取,发生旱涝灾荒时,则进行囤积而不发放,希望价格不断上涨,来获取丰厚之利,这样老百姓就会感到生活困难。请求根据州郡的远近,户口的多少,严格赏罚,督促官吏,按时收放不要误时,价格要适宜。官府买进的粮食不充足,则禁止争相买粮来谋求暴利;买完粮食将它们进行储藏,则要考察有的以供应军队为名谋取暴利。州郡缺少母钱,希望拿出官府的钱物救济它们。否则劝课之官,即使到其家每天觐见,对事情又有什么益处呢。”
兼任吏部流内铨主管。选补条律繁多冗长,主判官不能全部阅览,官吏多接受贿赂,在支出和征收上钻法律的空子。杜衍接任后,立即颁发给属史们函铨法,并问说“:全部都知道了吗?”回答说“:都知道。”杜衍尽力阅览,将本末典折全部了解清楚了。第二天,命令其他官吏不要升堂,各自在本署听取行文书,选举之事全部由自己决定,这样官吏就不能谋取奸利。过了数日,声闻惊动京师。改任知审官院,裁决取断就像主管官吏选举时一样。升任尚书工部侍郎、知永兴军。当地有位百姓白天失去了他的妻子,杜衍为了捕捉杀人贼采用了一定的谋略,立即捕捉了杀人贼,将埋葬的尸体发掘出来,还获得了贼杀死其他妇人的两具尸体,秦人大为震惊。调任并州。赵元昊叛乱,因为太原为战略要地,加封龙图阁学士。
宝元二年(1039),升任刑部侍郎,复知永兴军。这时朝廷正大举用兵,老百姓对征发兵役感到痛苦,官吏因此为奸。杜衍分别处置进行策划,根据道路的远近,给予充裕的集合时间,让老百姓依次服役,与其他各州的费用相比,要节省一半的费用。回到京师,暂代开封府知府,在其任职附近的人久闻了杜衍的名声,都不敢私自请托。授职同知枢密院事,改任枢密副使。夏竦上奏攻守策,宰相打算采用出兵。杜衍说:“偶然成功,不是万全之计。”争议了很长时间,请求罢免未获允许,被仁宗亲自赐予诏书以资劝勉鼓励。任河东宣抚使,授职吏部侍郎、枢密使。每次逢到朝内降恩,杜衍都放置起来不执行,共积累诏旨至十封,便献纳在仁宗面前。谏官欧阳修入朝进对,仁宗说:“外人都知道杜衍将朝内降恩旨退还吗?凡是有求于朕的人,每次都以杜衍不同意而告知于求者从而停止的,比杜衍所封还的降恩诏书要多得多。”
契丹与赵元昊在黄河外交战,参知政事范仲淹宣抚河东,想自己率兵出战。杜衍说“:二国正在交战,势力正盛,我们不可轻易出兵。”范仲淹在仁宗面前与杜衍争议,并诋毁杜衍,言辞十分尖刻急迫。范仲淹曾经以父行服侍杜衍,杜衍不因此而忌恨他。契丹女婿刘三嘏为逃避罪行前来归顺,辅臣们议论要丰厚地安置他,来追问契丹的秘密军事。谏官欧阳修也请求留住刘三嘏,仁宗以此来问杜衍。杜衍说:“我国提倡忠信,如果自己违背誓约,接纳叛逃之人,那么我们就不理直气壮了。而且刘三嘏是契丹的近亲,而逃跑前来归顺,这样谋身,还能与他计谋国事吗?接纳他有什么益处,还不如将他归还契丹。”于是将刘三嘏归还契丹。授职同平章事、集贤殿大学士兼枢密使。
杜衍喜欢推荐贤士,阻止佞幸之徒,因此小人多不高兴。他的女婿苏舜钦,少年时就能写文章,论议有些冒犯权贵,监进奏院,按照以前的惯例,祭祠神庙时要使用伎乐来使宾客得到娱乐。集贤校理王益柔被杜衍推荐,有人说王益柔曾经戏作《傲歌》,御史将王益柔、杜衍一一上奏弹劾,想以此使杜衍感到危难。谏官孙甫说:“丁度因上奏问对求以大用,请求以此任用官吏。”丁度知道孙甫上奏有误,极力请求置对。杜衍由于孙甫刚奉诏出使契丹,扣留了孙甫的上奏,丁度因此对杜衍十分怀恨。到杜衍罢职,丁度起草诏书制令指责杜衍结纳朋党。这时范仲淹、富弼想重新治理国事,与执政者不和,范仲淹、富弼已离京任宣抚使,上奏者附会执政者,更加攻击二人的过失。仁宗打算罢免范仲淹、富弼,杜衍独自相助,但杜衍平日的议论,实际上并不是结纳朋党。以尚书左丞离开京师任兖州知州。庆历七年(1047),杜衍刚刚七十岁,上奏请求归还官印,于是以太子少师致仕。
杜衍任宰相,贾昌朝不高兴,有人说以前的宰相一旦上章,得以三少致仕,都不是过去的成例,这是由于贾昌朝压抑他。皇..元年(1049),特地升任太子太保,奉召陪祀明堂,诏令应天府敦促派遣杜衍上道,都亭驿站设置帐具几仗等待他,杜衍声称有病极力辞谢。任太子太傅,赐予他的儿子同进士出身,又任太子太师。知制诰王洙拜谒告归应天府,朝廷下诏抚问,封为祁国公。
杜衍清廉正直不积聚私产,退职后,寄寓南都共十年,房屋简陋狭小,只有数十楹,居住好像宽余。出入随从的人约十来人,戴乌帽、穿皂绨袍、系革带。有人规劝杜衍穿居士服,杜衍说:“年老谢职,还可以盗用高士之名吗?”善于写诗,正书、行、草都有章法。病重,仁宗派遣宦官赐药,带着太医前去看望,没有来得及,去世,终年八十岁。追赠司徒兼侍中,谥号“正献”。告诫他的儿子努力忠孝,用一枕一席来进行装殓,用小的墓穴低矮的坟冢来安葬。曾自作遗疏“:不要由于长久平安而忽略边防,不要因为已经富裕就轻视财产的节用,应当尽早地树立皇太子,来安定人心。”言语中没有谈到私事。