程昱字仲德,东郡东阿县人,身高八尺三寸,胡须长得很美。黄巾兵起时,县丞王度反叛响应,烧了仓库。县令跳墙逃走,官吏百姓纷纷背负老幼向东逃奔到渠丘山。程昱派人侦察王度的情形,王度等人只得到一座空城,不能据守,出城在城西四、五里的地方驻扎。程昱对县中大族薛房等人说:“现在王度等人得到城郭而不能据守,其成败大事就可以知道了。他们不过想要掠抢财物,并非有扩大装备训练军队攻城坚守的志向。现在我们为什么不相继返回城中守城?并且城墙又高又厚,城中积存的谷米很多,现在如果回去请求县令,一同坚守,王度一定不能持久,那时便一攻可破。”薛房等人认为他说得对。但吏役百姓不肯听从,说:“贼在西边,我们只有向东去。”程昱对薛房说:“愚民不可和他们商议大事。”于是秘密派遣几人骑马到东山上举起幡旗,让薛房等人能望到,大喊说:“贼已来了!”随即下山直奔城内,吏民奔走跟随,找到县令,共同守城。王度等人来攻城,攻不下,想要离去。
程昱率领吏民打开城门紧紧追击,王度等被打败逃跑。东阿县城因此得以保全。
初平年间(190~193),兖州刺史刘岱征召程昱,程昱没有答应,当时刘岱与袁绍、公孙瓒和亲,袁绍让他的妻儿住在刘岱处,公孙瓒也派从事范方带领骑兵去援助刘岱。后来袁绍与公孙瓒发生嫌怨,公孙瓒打败袁绍军队,接着派使臣告诉刘岱,让他遣返袁绍妻儿,与袁绍绝交。另外敕令范方:“如果刘岱不遣返袁绍家眷,你就带领骑兵返回,等我平定了袁绍就发兵与刘岱开战。”刘岱连日商议,不能决断,别驾王..告诉刘岱:“程昱很有计谋,能决断大事。”刘岱于是召见程昱,请问他有何计策,程昱说:“如果放弃袁绍切近的援助而寻求公孙瓒远距离的援助,这正是所谓从越地借人来救已经溺水的儿童。那个公孙瓒不是袁绍的对手。现今虽然挫伤了袁军,但是最终要被袁绍擒住。如果只顾一时的权变而不考虑远大的计划,将军您终有一天会失败的。”刘岱听从了他。范方带领他的骑兵返回,还没到达,公孙瓒已被袁绍打得大败。刘岱上表推荐程昱为骑都尉,程昱以有病为由拒绝。刘岱后来被黄巾军所杀。太祖到了兖州,征召程昱。程昱将要上路,他家乡的人对他说:“怎么前后的态度这么不一样啊!”程昱笑而不答。太祖与他交谈,劝说他,让他作寿张县令。太祖征讨徐州,让程昱与荀彧留守鄄城。张邈等人反叛迎接吕布,各郡县纷纷响应,只有鄄城、范县、东阿没有变动。吕布军中投降的人,说陈宫正要亲自带兵攻取东阿,又让汜嶷攻取范县,官吏百姓都生了恐慌。荀彧对程昱说:“现在兖州整个反叛,只有这三个城池了。陈宫等人以重兵逼临城下,若非有人深入其中,团结一心,这三个城也必生变动。您是民众的希望,如能回城劝说他们,大概是可以成功的!”程昱于是归返,路过范县,劝说县令靳允说:“听说吕布拘捕了您的母亲、弟弟、妻子、儿女,这是孝子所绝对不能容忍的!现今天下大乱,英雄并起,必定会有命世之才,有能力平息天下之乱的人出现,这就需要智者审慎地加以抉择。得明主的一定昌盛,失明主的一定败亡。
陈宫叛变,迎接吕布,而众城都去响应,好像他们能有所作为似的。然而在您看来,吕布是个什么样的人啊!那吕布粗鲁而六亲不认,刚愎而横蛮无礼,不过是个匹夫英雄罢了。陈宫等人以势利大小进行合作,不能帮助您的。他们兵士虽多,最终必定不会成功。曹使君杰出的智慧韬略世所稀有,几乎可以说是上天所授。您一定能固守范城,我将守住东阿,这样,像田单那样的收复失地的功劳就可以建立了。谁会去违背忠义顺从恶人而导致父母双亡呢?希望您仔细考虑这件事!”靳允流着眼泪说:“我不敢有另外的心思。”这时汜嶷已经在县里,靳允于是召见汜嶷,埋伏兵士刺杀了他,回去约束兵士守城。程昱又派骑兵堵住仓亭津渡口,陈宫来到,不得渡河。程昱到了东阿,东阿县令枣祗已经率领官吏民众,依城坚守。又有兖州从事薛悌与程昱共同谋划,终于保全了三城,等待太祖。太祖回来后,握着程昱的手说:“如果不是你的力量,我就无处归还了。”于是上表荐程昱为东平相,驻扎在范县。太祖与吕布几次在濮阳作战,几次不胜。这时发生了蝗虫灾害,于是双方带兵退还。这时袁绍派人劝说太祖与他联合,想让太祖迁家到邺城居住。太祖刚刚失掉兖州,军粮用尽,打算同意袁绍。这时程昱出使正好回来,太祖召见,程昱于是说:“听说将军想要迁家,与袁绍联合,确实有这件事吗?”太祖说:“是的。”程昱说:“我看将军大概是遇到事情而产生了恐惧,要不然怎么考虑得这样不深呢?袁绍占据燕、赵地区,有吞并天下的心愿,但他的智谋却不能助他成事。将军您自己揣度能安居于袁绍之下吗?将军凭借龙虎般的威势,可以做韩信、彭越做过的事情吗?现在兖州虽然残破,但还有三城在我手中,能够死战的士兵,不下万人。
凭将军的神武,与荀文若和我程昱等,收拾余部,发挥他们的力量,称霸称王的事业就可以成功了。希望将军三思!”太祖于是停止了与袁绍联合的打算。汉天子迁都许县,任命程昱为尚书。兖州尚未安定,又任命程昱为东中郎将,兼任济阴太守,都督兖州事务。刘备失了徐州,前来归附太祖。程昱劝说太祖杀刘备,太祖不听。后来太祖又派遣刘备到徐州半路截击袁术,程昱与郭嘉劝说太祖:“您前些天没有谋杀刘备,我等确实不如您想得周全。现在借给刘备兵力,他一定会生异心。”太祖后悔了,追赶刘备,却来不及了。恰逢袁术病死,刘备到了徐州,随即杀了车胄,发动士兵背叛了太祖。不久,程昱升任振威将军。袁绍住在黎阳,正要南渡。这时程昱只有七百名兵士守卫鄄城,太祖知道这个消息,派人通知程昱,要给他增兵两千。程昱不肯接受,说:“袁绍拥有士兵十万之多,自以为所向无敌。现在见我兵少,一定轻视,不来进攻。如果增加我的兵力,人多了,袁绍则不可能不来进攻,进攻就一定会攻下,徒然使我们两处损失力量。希望您不要疑惑!”太祖听从了这个建议。袁绍听说程昱兵少,果然不去攻城。太祖对贾诩说:“程昱的胆识,比得过孟贲和夏育。”程昱收罗藏于山泽中的亡命之徒,得到精兵数千人,随即率领军队与太祖在黎阳会合,讨伐袁谭、袁尚。
袁谭、袁尚被打败逃走。任程昱为奋武将军,封为安国亭侯。太祖征讨荆州,刘备奔向东吴。议论的人认为孙权一定要杀刘备,程昱预料说:“孙权刚刚登上王位,尚未被国内所惧怕。曹公无敌于天下,刚刚攻下荆州,声威震动江南,孙权虽然有谋略,但不能独立对抗,刘备有英名,关羽、张飞能抵敌万人,孙权必定借助他们以与我们对抗。刘备的灾难得解脱,势力范围也被分定,刘备依靠这个帮助站稳了脚跟,再要捉杀他是不可能的了。”孙权果然多给刘备兵力,以抗御太祖。
此后中原地区逐渐平定,太祖抚摸着程昱后背说:“兖州那一场败仗以后,如果不采用您的意见,我怎么能达到今天这个地步?”宗人奉上牛酒慰劳程昱,程昱说:“知道满足就不会招致侮辱,我可以告退了。”于是自己上表要求将手下士兵归还太祖,关门隐居,不再出任。程昱性情刚直猛烈,与人多有抵触,有的人就告发程昱阴谋反叛,太祖对他赏赐和待遇却更加丰厚。魏国建立以后,程昱作了卫尉,与中尉邢贞为威仪事相争,被免职。魏文帝即位后,复官为卫尉,晋封安乡侯,增加封邑三百户,连同以前的共八百户,又分封程昱的小儿子程延及孙子程晓为列侯。正要封程昱为公,恰在这个时候他去世了。文帝为他的死流泪,追赠他以车骑将军的称号,谥号为肃侯。程昱的儿子程武继承了这一爵位。程武去世,程武的儿子程克继承。程克去世,程克的儿子程良继承。