刘琨在军事上毫无建树,唯有"月夜奏笳退胡骑"成为他一生最经典的一次战役。公元311年,洛阳陷落,312年春,匈奴汉国的大军兵围晋阳,"为胡骑所围数重,城中窘迫无计,"刘琨月夜登城,面对数万匈奴骑兵发出一声长长的清啸,划破清冷月光笼罩下的原野,"贼闻之,皆凄然长叹,"刘琨中夜奏起胡笳,"贼又流涕?#91;欷,有怀土之切。 向晓复吹之,贼并弃围而走。"刘琨成功的运用心理战,利用匈奴骑兵思乡之情,奏胡笳以动之。使匈奴人心离散,军心动摇,又不知城中的虚实,撤军而走,晋阳之围遂解。这其中有一半刘琨的功劳,也有一半拓跋部的功劳,匈奴人退走,实际上是害怕围城日久,拓跋部来救援晋阳。
危难一过,他的老毛病又犯了,听信善音律懂艺术的徐润的谗言,杀掉生性亢直的奋威护军令狐盛。在群雄争霸战乱纷飞的年代,千军易得一将难求,刘琨宠艺人杀豪杰大失人心。连他母亲也看出来了,劝他不要杀将,"你没本事,驾驭不了豪杰,只会把比你强的人除掉来保平安如何了得,这样下去,连我都要跟你遭殃。"刘琨不听,果不其然,令狐盛的儿子见老爹遇害,一怒之下投奔匈奴汉国,并把晋阳的虚实一一汇报给汉主刘聪,说雁门关的乌桓人谋反,刘琨去平叛,城中空虚,城里还有许多不满刘琨的人。刘聪大喜,派儿子刘粲和令狐泥一道攻打晋阳。刘琨真的率精兵去雁门关,留守的太原太守高乔举城投降,匈奴人不费一兵一卒占领晋阳,刘琨的父母均被杀害。
刘琨应该悔出肠子来,没办法跑到拓跋部哭诉,猗卢很够义气,闻听大怒,起倾国之兵为刘琨报仇。二十多万鲜卑骑兵杀向晋阳,刘粲为拓跋部气势所摄,焚烧辎重突围遁走,拓跋骑兵随后追击,大败匈奴,连斩数将,匈奴兵伏尸数百里。游牧民族喜欢打仗之暇进行捕猎来补充军粮, 猗卢大猎寿阳山,陈阅皮肉,山为之赤,可见拓跋人的气势。刘琨自营门步入拜谢,固请进军,他意气用事,猗卢可不糊涂,对他说:"我没有早来,让你父母遭到杀害,实在是有愧。现在并州已经光复,我们远道而来,士马疲弊,不能再继续前进了,刘聪不是一仗就可以消灭的。"猗卢知道刘琨不是什么将才,送给他一千多匹马,牛羊各一千多头和一百辆车后回师,把部将箕澹、段繁等留下来帮助戍守晋阳。
猗卢对他这个把兄弟仁尽义至,刘琨也对得起猗卢,先后上表晋廷封猗卢为大单于、代公,并割让陉岭(今山西省代县西北句注山)以北的马邑、阴馆、楼烦、繁畴、崞五县给拓跋部(其地东接代郡,西连西河、朔方,方数百里)。晋阳之战后,刘琨更是上表朝廷再为猗卢请功,长安的晋愍帝小朝廷封猗卢为代王,猗卢正式受封称王,拓跋代国的雏形由之形成,两人之间的关系达到最顶峰,二人秣马厉兵,准备联合进攻匈奴汉国。他们策划率十万骑兵西进,派人联络晋廷,让晋军从蒲坂东渡,东西夹击,欲在匈奴汉国都城平阳(在今山西省临汾市)会师。
公元313年对于大晋国来说是军事形势最好的一年。虽然在这一年晋怀帝司马炽被刘聪毒死于平阳,恰恰说明此时匈奴汉国的心虚。311年司马炽被俘,刘聪封他为光禄大夫,第二年又改封会稽郡公,仪同三司,并将自己宠信的小刘贵人赐给他,以示自己宽大的胸怀。然而随着匈奴汉国军事上的失利,司马炽的好日子为时不多了。
汉国的领土仅仅局限于今天的山西南部,太岳山麓两侧,汉国的两员大将刘曜和石勒各自率兵在关中(今陕西)和赵魏地区(今河南北部和河北南部)作战。晋朝在关中地区的军队经过大小数百次战斗,屡败刘曜的匈奴军。江淮地区的司马睿将石勒赶过黄河,幽州刺史王浚派出鲜卑段部的军队攻打石勒,石勒的处境非常的窘迫。匈奴的主力又在晋阳遭受失败,形势一片大好,所以刘琨提出消灭匈奴汉国的建议,得到了长安诸将的强烈支持,他们拥立晋武帝司马炎的孙子年仅十四岁的司马邺为首领,意图迎回晋怀帝。