征战并州
光熙元年九月,东海王司马越为了扩张势力,派刘琨出任并州(今山西东部、河北西部)刺史、加振威将军、领护匈奴中郎将。在此两年前,匈奴首领刘渊趁八王之乱,已在并州起兵建立“汉”政权,后改称“赵”,史称前赵。刘琨带领一千余人辗转离开首都洛阳,于元嘉元年(307年)春天到达晋阳(今山西太原)。当时的晋阳经历战乱,已成一座空城。刘琨在左右强敌环俟的环境下安抚流民,发展生产,加强防御。不到一年晋阳就恢复了生气,成了晋在中原的少数几个存留抵抗势力之一。
当时的晋阳南面是强大的匈奴前赵,北面是正在崛起试图染指中原的拓跋鲜卑的代国,东面是和段部鲜卑结盟的幽州刺史王浚。刘琨和拓跋鲜卑首领拓跋猗卢结盟,和前赵石勒等大将的战斗互有胜负。一个叫徐润东的人因为懂得音律得到刘琨的重用,此人无能而飞扬跋扈。奋威将军令狐盛进言要刘琨除去徐润东,反被徐润东诬杀,造成其子令狐泥等人的反叛。刘琨吸引了许多志愿抗击匈奴、羯人的志士,但当时粮食极端缺乏,而且刘琨的性格和能力又存在一些缺陷,终于使不少人离他而去。建兴元年(313年),晋愍帝继位,封刘琨大将军、都督并州诸军事。此时石勒在晋阳的东南襄国(今河北邢台)拥兵割据,势力日盛。他修书刘琨假意降晋,出兵消灭与刘琨有矛盾的王浚,而刘琨作壁上观。
建兴三年(315年)前赵刘曜击败刘琨,但因要攻打长安回兵。刘琨被晋愍帝封为司空、都督并冀幽诸军事。次年刘曜攻破长安,西晋灭亡。
建兴四年(316年)石勒出兵进攻并州,刘琨不听劝阻全军尽出,中了埋伏大败,丢了并州,只身投奔鲜卑首领段匹磾。
建武元年(317年),刘琨联合段部鲜卑的军队讨伐石勒,因段部鲜卑内部不和而流产。太兴元年(318年),段部鲜卑内斗,刘琨被段匹磾怀疑并投入牢中,并于次年6月22日被缢杀,时年四十八岁。子侄四人一同被害。