刘怀珍字道玉,是平原人,汉代胶东康王刘寄的后人。祖父刘昶,在宋武帝平齐后,被任命为青州治中,官至员外常侍。伯父刘奉伯,在宋朝曾任陈、南顿二郡太守。刘怀珍幼年时曾跟随父到寿陽,有一回豫州刺史赵伯符出来打猎,老百姓都跑去围观,而刘怀珍独自避而不看,刘奉伯觉得他很特别,说:“这孩子将来能使我们宗族发达。”
刘怀珍后来被本州招任为主簿。元嘉二十八年(451),逃亡分子司马顺则聚集一群人在东陽,州里派刘怀珍率领数千人前往讨平了他们。宋文帝召去问破贼的情况,刘怀珍让功不肯当,他的亲近之人都觉得奇怪,问他,刘怀珍说:“当年国子尼耻谈在河间时的功劳,我岂能把这点小小的胜利挂在嘴上呢!”当时人们都很称许他。
江夏王刘义恭出镇盱眙,路上碰到了刘怀珍,在交谈中对刘怀珍很器重,便要他来任骠骑长兼墨曹行参军。不久任命他为振武将军、长广太守。孝建初年,任义恭大司马参军、直阁将军。刘怀珍是北州的旧姓。家中蓄养了许多前来依附的人士,他便启禀皇上愿意让一千个门生来充当朝廷的宿卫,孝武帝大惊,便召取青、冀一带豪门私附数千人来,士人都怀不满。后来刘怀珍又随府转任太宰参军。
大明二年(458),敌虏围攻泗口城,青州刺史颜师伯请求增援。孝武帝派刘怀珍率领步、骑兵数千人赶赴,在麋沟湖和敌虏大战,连破七座城池。朝廷任命他为建武将军、乐陵、河间二郡太守,赐爵广晋县侯。次年,刘怀珍上启请求回南齐书去,孝武帝答复说:“现在边防需要人才,不能批准你的请求。”竟陵王刘诞谋反,郡中豪民王弼劝刘怀珍响应,刘怀珍便把王弼斩了,并报告朝廷,孝武帝大喜,任命他为豫章王刘子尚的车骑参军,加龙骧将军。
泰始初年,升任宁朔将军、东安、东莞二郡太守,率领龙骧将军王敬则、姜产步领骑兵五千人讨伐寿陽。庐江太守王仲子逃向南方,贼方派伪庐江太守刘道蔚五千人驻扎在建武涧,筑三城。刘怀珍派军中主将段僧爱马、步兵三百余人冲击,将其斩首。带领部队到达晋熙,伪太守阎湛坚守顽抗,刘子勋派部将王仲箈领步兵万人前来援救,刘怀珍派三千马步兵击王箈,在莫邪山大破王部,遂进军寿陽。刘怀珍又派王敬则在横塘、死虎一带击破殷琰部将刘从等四个堡垒,刘怀珍等乘胜追击,驻兵寿春长罗门。宋明帝嘉奖他的功劳,任命刘怀珍为羽林监、屯骑校尉,将军仍旧。刘怀珍则请求先派他去把贼众平定了,辞让不接受提拔。建安王刘休仁在浓湖与贼对峙,很长时间不能决胜负。明帝便把刘怀珍召回来,任他为前将军、加辅国将军,领军向青山援助攻击刘胡,事情平定后,刘怀珍被任命为游击将军,辅国将军仍旧。
青州刺史沈文秀不服从朝廷命令,明帝派其弟沈文炳前往宣布圣旨,让刘怀珍率马步兵三千人随沈文炳同行。还没到,薛安都引来敌虏,已经攻陷了徐州、兖州,张永、沈攸之又在彭城大败。朝廷命令刘怀珍带兵从盱眙经淮陰渡过淮河援救张永等,由于官军被敌虏追击,都相继逃回来了,刘怀珍也只得回来。泰始三年春天,朝廷让刘怀珍代镇山陽。
此前,宋明帝派青州刺史明僧詗北征,僧皓便派部将在王城筑工事,以逼近沈文秀,壕堑还没挖成,就被沈文秀攻破了,并继续攻打明僧詗。明帝便派刘怀珍率龙骧将军王广之五百骑兵、二千步卒,沿海前往救援,到了东海,明僧詗已退保东莱,进据朐城,众心恐惧,有人提议且保郁州。刘怀珍对众人说:“你们都传说沈文秀贿赂胡人军队,作为外援,我看他们那些人,还不至于到这一步。齐地人士长期以来就很注重名节,如果他们的名声一传开,东莱很快就能拿下,怎么能允许阻止军队放慢行动停在这里呢?”于是进军到黔陬。伪高密、平昌二郡太守溃败而逃,刘怀珍传达朝廷旨意,把沈文炳送到,而沈文秀终究还是不服从命令,焚烧了城郭。老百姓听说刘怀珍来了,都很高兴。伪长广太守刘桃根率领数千人守卫不其城,刘怀珍带着部队驻扎在洋水,众人都说:“沈文秀现在在境内到处都派有骑兵游击,应该坚壁防守等待时机。”刘怀珍说:“现在我们人少粮少,我们紧缺而敌人坚固,正应该选拔精锐部队,杀他个措手不及。”于是派王广之率领一百骑兵,袭击拿下了不其城,刘桃根逃走了。伪东莱太守鞠延僧领着数百人占据其城,并劫留了高丽来献礼的使者。刘怀珍又派宁朔将军明庆符与王广之攻击东莱,明延僧投降,刘怀珍便让高丽使者前往京城。沈文秀听说各城都已失败,便派使者张灵硕来请求投降,刘怀珍这才回来。
这年秋天,敌虏又入侵齐地,围攻历城、梁邹二城,其游骑跑到东陽来,扰动百姓。冀州刺史崔道固、兖州刺史刘休宾告急。休宾是刘怀珍的从弟。朝廷便任命刘怀珍为使持节、都督徐、兖二州军事、辅国将军、平胡中郎将、徐州刺史,封他为艾县侯,食邑四百户,督统水军,步军四十多万赶赴救援。听说二城已陷落,于是便作罢。
朝廷改任刘怀珍为宁朔将军、竟陵太守,转任巴陵王征西司马,领南义陽太守。建平王刘景素主持荆州后,又迁任刘怀珍为右军司马,又迁任南郡太守,加宁朔将军。明帝亲笔下诏刘怀珍说:“你性情忠直,我很信任,你在那里和少年共事,不要太考虑个人利益。景素这孩子还是不错的,不但能处理问题,也会把事情弄坏,你要经常谏说他。”刘怀珍奉旨。明帝病重时,又下诏刘怀珍说:“你不应该继续任景素的僚佐,你的才能本来应予更大的委任,现在调你来参与二直卫的负责工作。”赶上明帝驾崩,刘怀珍便任安成王抚军司马,领南高平太守。
朝廷对桂陽王刘休范有疑备,中书舍人王道隆宣布圣旨,任命刘怀珍为冠军将军、豫章太守。刘怀珍说:“休范虽有起事的苗头,但他哪里敢一下子就发作起来,如果他终于和朝廷为敌,我一定会根据律条消灭他。但现在要让我去到任,怕是逼着他起疑心而行动了!”坚决请求不去上任,于是任他为黄门郎、领虎贲中郎将、青州大中正。桂陽王反叛,朝廷加刘怀珍前将军,在石头防守。又任他为使持节、督豫、司二州、郢州之西陽军事、冠军将军、豫州刺史。建平王刘景素反叛,刘怀珍派儿子刘灵哲领兵赶赴京师。升明元年(477),进号征虏将军。
沈攸之在荆楚,朝廷讨论对他有怀疑,刘怀珍派冗从仆射张护前往郢城,向世祖(萧赜)表白自己的忠诚,并献计献策,后来沈攸之起兵,众人都说沈攸之会沿流直下,刘怀珍则对僚佐说:“沈攸之一向骄躁自大,虐待楚人,他必将在中南齐书流一带设兵耀武,声言要劫持幼主,绝对不敢长驱而下来决胜负。”于是派儿子刘灵哲率领马步兵数千人保卫京师。沈攸之派使者许天保来说动刘怀珍和他联合,被刘怀珍斩了,并将人头送给了太祖(萧道成)。太祖又把它送去给沈攸之看。刘怀珍进号左将军,移封为中宿县侯,增加食邑六百户。沈攸之围攻郢城,刘怀珍派遣建宁太守张谟、游击将军裴伸穆统率蛮、汉军兵一万人出击西陽,大破叛军前锋公孙方平数千人,缴获他们大量武器。刘怀珍晋升平南将军,督统南豫、北徐二州,增加食邑到一千户。
当初,在孝武帝时代,太祖任舍人,刘怀珍任直阁,二人早就相识。刘怀珍请假回青州,皇上有匹白马总马,好咬人,不能骑,便送给刘怀珍作告别。刘怀珍回报给皇上一百匹绢。有人对刘怀珍说:“萧君此马不能骑,所以才给你的,而你回报他一百匹绢,不是太多了么?”刘怀珍说:“萧君宽宏正大,岂能白要人这点绢。我正要把自己的身名交给他,岂能计较钱物的多少?”
太祖辅政期间,考虑到刘怀珍任朝官的资本还不多,便于升明二年,调刘怀珍来京任都官尚书,领前军将军,让他的第四子宁朔将军萧晃代理豫州刺史。有人疑虑刘怀珍不会接受代理,太祖说:“在我还没做官时,刘怀珍便对我一片赤诚,何况在今天,岂会有别的想法?”萧晃都出发一两天了,这些疑虑的议论还没止息。皇上便派军中主将房灵民带着上百名骑兵追去护送萧晃。对灵民说:“有人说刘怀珍一定会有不轨举动,但我对他一向信任,一定不会的。你和他是同乡,所以让你去,不仅是护送新刺史,也兼迎接旧刺史呢。”刘怀珍回到朝中来,被任命为相国右司马。建元元年(479),转任左卫将军,加给事中,改封霄城侯,增加食邑二百户。次年,加散骑常侍。
敌虏寇掠淮、淝一带,朝廷任命刘怀珍以本官加平西将军,假节,率军西往驻扎在巢湖,给寿春作出援助之势。刘怀珍年纪老了,考虑到率领禁旅比较辛苦,请求给他个清闲职务,于是转任光禄大夫,常侍之职仍旧。这年冬天,敌虏又寇掠朐山,朝廷又任命他为使持节、安北将军,本官仍旧,率兵前往救援。还没至,那边已经没事了,刘怀珍又解除了安北将军、持节。
建元四年,刘怀珍病重,上表请求解除职务,皇上特别下诏优待他,批准了他的请求,并考虑另行授予适当的职务。这年夏天,刘怀珍去世,当时他六十三岁。留下遗言要求葬礼从简。世祖(萧赜)即位后,追赠刘怀珍为散骑常侍、镇北将军、雍州刺史,谥号“敬侯”。