程昱字仲德,东郡东阿人也。长八尺三寸,美须髯。黄巾起,县丞王度反应之,烧仓库。县令逾城走,吏民负老幼东奔渠丘山。昱使人侦视度,度等得空城不能守。出城西五六里止屯。昱谓县中大姓薛房等曰:"今度等得城郭不能居,其势可知。此不过欲虏掠财物,非有坚甲利兵攻守之志也。今何不相率还城而守之?且城高厚,多谷米,今若还求令,共坚守,度必不能久,攻可破也。"房等以为然。吏民不肯从,曰:"贼在西,但有东耳。"昱谓房等:"愚民不可计事。"乃密遣数骑举幡于东山上,令房等望见,大呼言"贼已至",便下山趣城,吏民奔走随之,求得县令,遂共城守。度等来攻城,不能下,欲去。昱率吏民开城门急击之,度等破走。东阿由此得全。
初平中,兖州刺史刘岱辟昱,昱不应。是时,岱与袁绍、公孙瓒和亲,绍令妻子居岱所,瓒亦遣从事范方将骑助岱。后绍与瓒有隙。瓒击破绍军,乃遣使语岱,令遣绍妻子,使与绍绝。别敕范方:"若岱不遣绍家,将骑还。吾定绍,将加兵于岱。"岱议连日不决,别驾王彧白岱:"程昱有谋,能断大事。"岱乃召见昱,问计。昱曰:"若弃绍近援而求瓒远助,此假人于越以救溺子之说也。夫公孙瓒,非袁绍之敌也。今虽坏绍军,然终为绍所禽。夫趣一朝之权而不虑远计,将军终败。"岱从之。范方将其骑归,未至,瓒大为绍所破。岱表昱为骑都尉,昱辞以疾。
刘岱为黄巾所杀。太祖临兖州,辟昱。昱将行,其乡人谓曰:"何前后之相背也!"昱笑而不应。太祖与语,说之,以昱守寿张令。太祖征徐州,使昱与荀彧留守鄄城。张邈等叛迎吕布,郡县响应,唯鄄城、范、东阿不动。布军降者,言陈宫欲自将兵取东阿,又使氾嶷取范,吏民皆恐。彧谓昱曰:"今兖州反,唯有此三城。宫等以重兵临之,非有以深结其心,三城必动。君,民之望也,归而说之,殆可!"昱乃归,过范,说其令勒允曰:"闻吕布执君母弟妻子,孝子诚不可为心!今天下大乱,英雄并起,必有命世,能息天下之乱者,此智者所详择也。得主者昌,失主者亡。陈宫叛迎吕布而百城皆应,似能有为,然以君观之,布何如人哉!夫布,粗中少亲,刚而无礼,匹夫之雄耳。宫等以势假合,不能相君也。兵虽众,终必无成。曹使君智略不世出,殆天所授!君必固范,我守东阿,则田单之功可立也。孰与违忠从恶而母于俱亡乎?唯君详虑之!"允流涕曰:"不敢有二心。"时氾嶷已在县,允乃见嶷,伏兵刺杀之,归勒兵守。昱又遣别骑绝仓亭津,陈宫至,不得渡。昱至东阿,东阿令枣祗已率厉吏民,拒城坚守。又兖州从事薛悌与昱协谋,卒完三城,以待太祖。太祖还,执昱手曰:"微子之力,吾无所归矣。"乃表昱为东平相,屯范。
太祖与吕布战于濮阳,数不利。蝗虫起,乃各引去。于是袁绍使人说太祖连和,欲使太祖迁家居邺。太祖新失兖州,军食尽,将许之。时昱使适还,引见,因言曰:"窃闻将军欲遣家,与袁绍连和,诚有之乎?"太祖曰:"然。"昱曰:"意者将军殆临事而惧,不然何虑之不深也!夫袁绍据燕、赵之地,有并天下之心,而智不能济也。将军自度能为之下乎?将军以龙虎之威,可为韩、彭之事邪?今兖州虽残,尚有三城。能战之士,不下万人。以将军之神武,与文若、昱等,收而用之,霸王之业可成也。愿将军更虑之!"太祖乃止。
天子都许,以昱为尚书。兖州尚未安集,复以昱为东中郎将,领济阴太守,都督兖州事。刘备失徐州,来归太祖。昱说太祖杀备,太祖不听。语在《武纪》。后又遣备至徐州要击袁术,昱与郭嘉说太祖曰:"公前日不图备,昱等诚不及也。今借之以兵,必有异心。"太祖悔,追之不及。会术病死,备至徐州,遂杀车胃,举兵背太祖。顷之,昱迁振威将军。袁绍在黎阳,将南渡。时昱有七百兵守鄄城。太祖闻之,使人告昱,欲益二千兵。昱不肯,曰:"袁绍拥十万众,自以所向无前。今见昱兵少,必轻易,不来攻。若益昱兵,过则不可不攻,攻之必克,徒两损其势。愿公无疑!"太祖从之。绍闻昱兵少,果不往。太祖谓贾诩曰:"程昱之胆,过于贲、育"。昱收山泽亡命,得精兵数千人,乃引军与太祖会黎阳,讨衰谭、袁尚。谭、尚破走,拜昱奋武将军,封安国亭侯。太祖征荆州,刘备奔吴。论者以为孙权必杀备,昱料之曰:"孙权新在位,未为海内所惮。曹公无敌于天下,初举荆州,威震江表,权虽有谋,不能独当也。刘备有英名,关羽、张飞皆万人敌也,权必资之以御我。难解势分,备资以成,又不可得而杀也。"权果多与备兵,以御太祖。是后中夏渐平,太祖抚昱背曰:"兖州之败,不用君言,吾何以至此?"宗人奉牛酒大会,昱曰:"知足不辱,吾可以退矣。"乃自表归兵,阖门不出。
昱性刚戾,与人多迕。人有告昱谋反,太祖赐待益厚。魏国既建,为卫尉,与中尉邢贞争威仪,免。文帝践阼,复为卫尉,进封安乡侯,增邑三百户,并前八百户。分封少于延及孙晓列侯。方欲以为公,会薨,帝为流涕,追赠车骑将军,谥曰肃侯。子武嗣。武薨,子克嗣。克薨,子良嗣。