當匈奴貴族橫行北方、西晉王朝面臨崩潰的時候,晉朝有一些有志氣的將領還堅持在北方戰鬥。劉琨就是這樣的傑出代表。
劉琨年青的時候,有一個要好的朋友叫祖逖。在西晉初期,他們一起在司州(治所在今洛陽東北)做主簿,晚上,兩人睡在一張床上,談論起國家大事來,常常談到深更半夜。
一天夜裡,他們睡得正香的時候,一陣雞叫的聲音,把祖逖驚醒了。祖逖往窗外一看,天邊掛著殘月,東方還沒有發白。
祖逖不想睡了,他用腳踢踢劉琨。劉琨醒來揉揉眼睛,問是怎麼回事。祖逖說:「你聽聽,這可不是壞聲音呀。它在催我們起床了。」
兩個人高高興興地起來,拿下壁上掛的劍,走出屋子,在熹微的晨光下舞起劍來。
就這樣,他們一起天天苦練武藝,研究兵法,終於都成為有名的將軍。
公元308年,晉懷帝任命劉琨做并州刺史。那時候,并州被匈奴兵搶奪殺掠,百姓到處逃亡。劉琨招募了一千多個兵士,冒著千難萬險,轉戰到了并州的晉陽(今山西太原市西南)。
晉陽城裡,房屋被焚燬,滿地長著荊棘,到處是一片荒涼。偶然見到一些留下來的百姓,已經餓得不像樣子了。
劉琨看到這種情況,心裡很難過。他命令兵士砍掉荊棘,掩埋屍體,重新把房屋城池都修復起來。他親自率領兵士守城,防備匈奴兵的襲擊。他還採取計策,讓匈奴的各部落互相猜疑。後來,有一萬多個匈奴人投降了劉琨,連漢主劉淵也害怕了,不敢侵犯。
劉琨把流亡的百姓都召回來耕種荒地。不到一年時間,到處可以聽到雞鳴狗叫的聲音,晉陽城漸漸恢復了繁榮的景象。
劉聰攻破洛陽之後,西晉在北方的兵力大多被打散了,只有劉琨還在并州一帶堅持戰鬥。晉愍帝在長安即位後,派人封劉琨為大將軍,要他統率并州的軍事。
那時候,漢國大將石勒,佔據了襄國(在今河北邢台西南),集結了幾十萬大軍,想奪取并州。劉琨南面有劉聰,北面有石勒,前後受敵,處境困難到了極點。可是劉琨沒有害怕,沒有退縮。他在給晉愍帝的一份奏章裡說:「臣跟劉聰、石勒,勢不兩立。如果不討平他們,臣決不回朝。」
據說,劉琨在晉陽的時候,有一次,晉陽被匈奴的騎兵層層包圍。晉陽城裡兵力太少,沒有力量打退敵人。大家都感到驚慌,劉琨卻仍然泰然自若。到了傍晚,他登上城樓,在月光下放聲長嘯,聲調悲壯。匈奴的騎兵聽了,都隨著嘯聲歎息。半夜裡,劉琨又叫人用胡笳(一種樂器)吹起匈奴人的曲調,勾起了匈奴騎兵對家鄉的懷念,傷感得流下眼淚。天快亮的時候,城頭的笳聲又響了起來,匈奴兵竟自動跑散了。
後來,劉琨聯絡鮮卑族首領一起進攻劉聰,沒有成功。接著,石勒進攻樂平(今山西昔陽西南),劉琨派兵去救,被石勒預先埋伏好的精兵打得幾乎全軍覆沒。正在這個時候,又傳來了長安被劉聰攻陷的消息。到了這步田地,儘管劉琨怎樣頑強,也沒法保住并州,只好率領殘兵投奔幽州去了。