他本为鲍信部将,后属曹操,曾于张绣造反时讨伐不守军纪的青州兵,同时为迎击敌军而固守营垒,因此曹操称赞他可与古代名将相比。然而在建安二十四年(219年)的襄樊之战中,他在败给关羽后投降,致使晚节不保。关羽败亡后,他从荆州获释到了吴国。黄初二年(公元221年),孙权遣还回魏,他就是曹魏五子良将之一--于禁。
初平三年(192年),鲍信迎曹操领兖州牧,于禁与其党俱封为都伯,属将军王朗。王朗异之,向曹操推荐于禁之才可任大将。曹操召见于禁,拜军司马。曹操让他统兵到徐州,攻打广戚,攻克广威之后,任命他为陷陈都尉。兴平元年(194年),随同曹操到濮阳讨伐吕布,于禁单独率兵在城南攻破了吕布两座营寨,又率兵在须昌打败了高雅。随从曹操攻打寿张、定陶、离狐,在雍丘包围了张超,占领了四座城池。又随曹操讨伐黄巾军刘辟、黄邵等部,屯扎在版梁。黄邵等乘夜袭击曹操营寨,于禁领部下迎击,打败了黄巾军,斩杀黄邵等,迫使黄巾军全部投降。同年,从围袁术部将桥蕤、张勋等于若县,斩其四将。
建安二年(197年),于禁随曹操至宛,张绣投降。旋即张绣复叛,曹操的阵营被张绣军队忽然袭击,应付来不及,便各自退兵,非常混乱。唯独于禁约束部下,且战且退。一些士卒虽然战死了,于禁也不允许散乱。还没有退回曹军大本营,于禁路上发现十多个衣衫不整的伤兵,一问之下,原来是原本的青州兵在打家劫舍。青州兵原是黄巾贼,后来投降了曹操,仍称青州兵,曹操对他们很宽容,因此经常放肆,乘机抢劫。于禁一听,便追讨这些也是自己人的青州兵。有些青州兵不敌,逃回曹营打小报告,诬告于禁也造反。有人劝于禁首先向曹操处报备,但于禁说:“现在敌人在后面追来,我首先抗敌,至于曹公,他是明智的人,正是谣言止于智者,怕什么?”于是,于禁先筑好了濠沟以防敌人进攻,然后才令人通知曹操及向他解释。曹操听了,认为于禁的做法很对,当众说:“当时敌人来攻,相当混乱,于禁能在混乱中整顿军队,追讨抢掠的恶行,安营筑寨地坚守,真是好将领的榜样。”于是录于禁前后功,封为益寿亭侯。
建安三年(198年),复从曹操破张绣于穰,擒吕布于下邳。后与史涣、曹仁、乐进攻破眭固于射犬,破斩之。建安五年(200年),刘备在徐州叛变,曹操东征之。袁绍攻于禁,于禁坚守,袁绍不能攻下,随后主动出击,攻打袁军的侧翼营寨,从延津向西南沿黄河攻取汲县, 并与乐进等率步骑五千渡河攻取获嘉县,总共焚烧保聚三十馀屯,斩首获生各数千,招降袁绍将何茂、王摩等二十馀人。随后曹操又使于禁单独领兵进驻原武,攻击袁绍在杜氏津的营寨,破之。迁裨将军,后从还官渡。曹操与袁绍连营,起土山相对。袁绍命令士兵向曹操的营中射箭,曹操的士卒多死伤,士兵惧怕。于禁督守土山,力战激励士气。官渡之战后迁偏将军。
建安七年(202年),刘表派刘备北伐袭击许都,一直打到了叶县,已逼近许昌,曹操调动大将夏侯、于禁、李典抵抗刘备,刘备将阵线后撤至博望与曹军对峙。一天早晨烧掉营地撤退了,夏侯率领部队追击刘备,李典说:“敌人无故撤退,怀疑肯定有埋伏。南边的道路狭窄,草木又浓密,不能追击。”夏侯不采纳他的意见,和于禁一同带兵去追击,李典留守。夏侯、于禁果然中了刘备的埋伏,战况十分危急时,早有预料的李典及时带兵接应赶到,刘备望见李典的救兵到了,自觉强攻无益,于是被迫撤退,曹军成功保卫了许都。
建安十一年(206年),昌g投降曹操后再次反叛,曹操派遣于禁征讨。于禁急攻昌g,昌g与于禁是旧交,便向于禁投降。诸将皆以为昌g已降,当让曹操处置,于禁曰:“你们难道不知道曹公的命令吗!在大军包围后才投降的人,不能赦免他的罪。遵行和执行法令,是事奉君上的气节。昌g虽然是我的旧朋友,但我岂可以因此而失节!”自临与昌g决别,陨涕而斩之。当时曹操军在淳于,闻而叹曰:“昌g不向我投降,而投奔于禁,是命运啊!”更加器重于禁,东海平定以后,曹操上表汉献帝表功于禁,乐进,与张辽三人,于禁因此拜为虎威将军。
建安十四年(209年),于禁与臧霸等攻梅成,张辽、张A等讨陈兰。于禁到,梅成举众三千馀人伪降。旋即复叛,他的部下都投奔陈兰。张辽等人同陈兰相持,军粮不足,于禁押运粮草前后相接,张辽得到补给,于是斩杀陈兰、梅成。于禁增加食邑二百户,连同以前的共一千二百户。
这时,于禁与张辽、乐进、张A、徐晃俱为名将,曹操每次征伐,不是用为行军前锋,就是用为后拒;而于禁持军严整,得贼财物,无所私入,由是赏赐特重。曹操曾经恼恨朱灵,欲夺其兵权。曹操因为于禁有威重,遣于禁引数十骑,赍令书,往朱灵营夺其军,朱灵及其部众无人敢动。曹操让朱灵为于禁部下,众皆震服,其见惮如此。