早期生活
刘琨是西汉中山靖王刘胜的后裔。他的祖父刘迈,曾任相国参军、散骑常侍。父亲刘蕃,官至光禄大夫。刘琨工于诗赋,颇有文名。贾后之侄贾谧权过人主,身旁聚集了一批豪族贵戚出身的文人,互相唱和,号为“二十四友”,而刘琨兄弟也厕身其间。
西晋元康五年(295年),二十六岁的刘琨出任司隶从事。后又被高密王司马泰辟为掾属,迁任著作郎、太学博士、尚书郎。
八王之乱
永康元年(300年),赵王司马伦执政,以刘琨为记室督,又改任从事中郎。永宁元年(301年),司马伦称帝,刘琨任太子詹事,辅佐司马荂。齐王司马冏、成都王司马颖、河间王司马颙等诸王共同讨伐司马伦,刘琨被司马伦任命为为冠军将军、假节,与孙会领兵三万抵抗司马颖,结果在黄桥大败而回。司马冏辅政后,刘琨因出身名门,被任命为尚书左丞、司徒左长史。302年(太安元年),司马冏兵败,范阳王司马虓镇守许昌,并推荐刘琨为司马。
永兴元年(304年),晋惠帝被张方胁迫迁都长安。次年,刘乔攻击司马虓,刘琨援救不及,其父母皆被俘获。306年(光熙元年),刘琨从幽州王浚处求得八百骑兵,击破东平王司马懋,战败刘乔,救出父母,又斩杀司马颖麾下大将石超,收降荥阳守将吕朗。同年,司马越将晋惠帝救回洛阳,刘琨因功被封为广武侯,邑二千户。
出镇并州
光熙元年(306年)九月,司马越为了扩张势力,派刘琨出任并州刺史、加振威将军、领护匈奴中郎将。刘琨带领一千余人辗转离开首都洛阳,于307年(元嘉元年)春到达晋阳(今山西太原)。当时的晋阳经历战乱,已成一座空城。刘琨在左右强敌环俟的环境下安抚流民,发展生产,加强防御。不到一年晋阳就恢复了生气,成了晋在中原的少数几个存留抵抗势力之一。
当时的晋阳南面是强大的匈奴前赵,北面是正在崛起的鲜卑代国,东面是和段部鲜卑结盟的幽州刺史王浚。刘琨和拓跋鲜卑首领拓跋猗卢结为兄弟,和前赵石勒等大将的战斗互有胜负。
河南人徐润因通晓音律得到刘琨的重用,但是此人无能而跋扈。奋威将军令狐盛进言要刘琨除去徐润,反被徐润诬杀,造成其子令狐泥等人的反叛。刘琨吸引了许多志愿抗击匈奴、羯人的志士,但他的政治军事才能也使不少人离去。
建兴元年(313年),晋愍帝继位,封刘琨大将军、都督并州诸军事,加散骑常侍、假节。建兴三年(315年),刘琨被晋愍帝封为司空、都督并冀幽诸军事。刘琨辞去司空,接受都督之职。不久,代王拓跋猗卢被其儿子拓跋六修杀死,拓跋普根平定叛乱也因病而死,刘琨在拓跋部作为人质的儿子刘遵同箕澹等率3万余人投奔刘琨。
依附段部
建兴四年(316年),石勒出兵进攻并州,刘琨不听姬澹劝阻全军尽出,中伏大败,丢失并州,只身投奔幽州刺史、辽西鲜卑左贤王、假抚军大将军段匹磾,并与其结为兄弟。同年,刘曜攻破长安,晋愍帝被俘,西晋灭亡,刘琨令长史温峤向司马睿劝进。司马睿称帝后,加封刘琨为侍中、太尉,其余官衔不变,并赐他名刀一把。
建武元年(317年),段匹磾以刘琨为大都督,率军讨伐石勒。结果段匹磾堂弟段末杯接受石勒贿赂,不肯进军,刘琨因势弱只得退兵。
含冤而死
太兴元年(318年),段部鲜卑内斗,段末杯击败段匹磾自任单于,并俘虏了刘琨的儿子刘群。刘群得到段末杯的厚待,便给刘琨写密信邀请他共击段匹磾,谁料密信被段匹磾截获。段匹磾虽相信刘琨,但最终还是将刘琨下狱。
刘琨素有名望,拘押期间,远近之人尽皆愤叹。代郡太守辟闾嵩与刘琨部下将领企图反叛段匹磾救出刘琨,因泄密而失败。东晋权臣王敦派人密告段匹磾,让他杀掉刘琨。刘琨听说王敦来使,便对儿子刘遵说:“处仲(王敦)使来而不我告,是杀我也。死生有命,但恨仇耻不雪,无以下见二亲耳”。
同年五月初八,段匹磾自称奉皇帝诏旨将刘琨缢杀,子侄四人同时遇害。刘琨时年四十八岁。东晋因段匹磾势力强大,还要依靠他讨伐石勒,因此没有吊祭刘琨。刘琨死后,世子刘群、姨甥卢谌、内侄崔悦等投奔辽西段末杯,而部下将佐大都投靠石勒。
太兴三年(320年),刘琨的从事中郎卢谌、崔悦等上表朝廷为刘琨鸣冤,太子中庶子温峤也上表附议。晋元帝于是追赠刘琨为侍中、太尉,谥曰愍。