刘备被徐州牧陶谦邀请到徐州之后,颇受当地士族欢迎。兴平元年(194年)陶谦去世前把徐州这个四战之地让给了刘备,并上表朝廷推荐刘备为豫州刺史。陶谦死后,徐州别驾糜竺、下邳人陈登(沛相陈珪之子)、北海相孔融都带头奉迎刘备。
同年吕布被曹操从兖州赶跑,不得已跑到了徐州。建安元年(195年)刘备带兵出去和袁术打仗的时候,吕布却趁机攻占了徐州治所下邳。《三国志.武帝纪》记载“吕布袭刘备,取下邳。备来奔。程昱说公曰:‘观刘备有雄才而甚的人心,终不为人下,不如早图之。‘公曰:‘方今收英雄时也,杀一人而失天下之心,不可。’”
其实,曹操也能看出来刘备并非人臣,但为什么没有听从程昱建议杀掉刘备,反而“厚遇之,以为豫州牧。将至沛收散卒,给其军粮,益与兵使东击布。”
其实,这和曹操不久之前在兖州遇到的挫折和他善于吸取教训的个人性格优点有关。
公元191年名士边让辞官回到老家兖州陈留郡。次年,192年,曹操在兖州东郡士族代表陈宫的运作之下被兖州当地士族认同并迎立为兖州牧。兖州当地士族的目的其实是让曹操做他们的利益代言人,共治兖州,以确保自己的利益不被削弱。但是曹操却重用外来族人,比如荀彧和程昱等人,这让当地士族多为不满。边让名噪天下,只因为不屈服于曹操,“多轻辱之语”,却被曹操命陈留郡守杀死于家中。这让整个兖州士族非常震惊!陈宫此时也比较后悔劝说众人迎立曹操。
另外,当时和袁绍等人一同起兵讨伐董卓的兖州东平人张邈因为批评过袁绍,为袁绍所恨。而此时张邈正在跟随曹操。于是袁绍就要求曹操杀掉张邈。张邈和袁绍、曹操从小就是朋友。曹操拒绝了袁绍,让张邈无比感激。但是后来躲过袁绍刺杀的吕布路过张邈住处时,两人握手共誓,让袁绍更加痛恨张邈。此时曹操和袁绍还是盟友,或者说曹操还要依靠袁绍,所以张邈误判曹操终究会为了袁绍而杀害自己,内心不安。边让之死刺激了他。在陈宫的劝说下,张邈联系了昔日盟友吕布,趁着曹操带着大部分兵力攻打徐州兖州空虚的时候占领了兖州。整个兖州全部响应。这又极大地刺激了曹操。然后苦闷的曹操再花了两年时间才把兖州重新夺回来。
不过曹操有很多性格优点,其中之一就是能够反思自己的过失,并吸取教训。比如建安二年春,张绣投降后,因为曹操让其叔叔张济遗孀陪睡,一怒之下又反了曹操。这一战,曹操本人中箭受伤,长子曹昂、弟弟的儿子曹安民遇害,大将典韦战死,损失惨重。劳师动众,无功而返,并且损失惨重。事后曹操也觉得对不起大家,就对诸将说:“我受降张绣,但是没好意思安排他的家人来我这里做人质,以至于此。我知道自己失败的原因。大家都看吧,自今以后不再犯这类错误!”
这是曹操的个性。他在兖州遇到的挫折已经让他感到痛苦。所以,他肯定已经认识到了乱杀名士的严重后果。如今领兵打败黄巾军的诸侯刘备来降,怎么好杀他,堵塞后面降将来归之路!知道其中利弊而选择其一,是不得已而为之,并非糊涂无知。