司馬遷擔任郎中,出入宮廷,可以直接接觸一些抵抗匈奴的名將、探險家。例如衛青、霍去病、張騫、李廣等。後來他根據對這些人的觀察和采訪,寫成《衛將軍驃騎列傳》《大宛列傳》《李將軍列傳》等著名篇章,又從這些人的口中了解到北方遊牧民族匈奴的詳情,而寫成《匈奴列傳》。
在今天的歐亞大陸的中部,從烏蘇裏江到多瑙河,綿延著一片大草原,上古時代,這片遼闊無垠的草原上,生活著許多遊牧民族,其中最強大、最剽悍、最知名的是匈奴人。匈奴人以殺戮為耕作,不但侵略中華帝國,而且侵略和摧毀了歐洲的西羅馬帝國,改變了歐洲的曆史進程,它還入侵過古印度的笈多王朝和古波斯的薩山帝國。羅馬人記敘了匈奴人入侵歐洲的曆史,可對於這個摧毀許多國家的匈奴民族的來源,則茫無所知。直到許多年以後,歐洲人有機會閱讀《史記》《漢書》和其他中國曆史典籍,才推斷入侵歐洲的匈奴人來自上古中國的北方。《史記》的《匈奴列傳》是世界上最早的關於匈奴的珍貴記錄。
司馬遷在《史記》上寫道,匈奴乃夏後氏(古部落名,其領袖是大禹,夏後氏又是夏朝的代稱)之苗裔。《史記》索隱引證《括地誌》說:“夏朝最後一個君主桀荒淫無道。商朝的湯王將他流放在鳴條,三年後病死。桀的兒子名叫淳維(又稱獯粥),帶著桀的眾多妻妾,避居北方的原野,放牧牛羊為生,領著畜群,向有水草的地方遷徙,成為匈奴族的祖先。”
且不論這段傳說的真偽,但可以肯定的是,在夏後氏部落進入草原之前,草原上一定還有好些原始遊牧部落。這些部落是分散的,混雜的,與務農的華夏族夾雜而居,黃帝和堯時的葷粥,商朝的鬼方,周朝的獫狁,春秋時的戎狄,戰國時的胡人,都是指這些原始遊牧部落。
到戰國末期和秦代,匈奴部落統一了漠北草原,建立了匈奴國,中原的華夏人才稱其為匈奴,也許“匈”是本名,“奴”是中原民族對其的蔑稱。
戰國末期,鄰近匈奴的趙國常年要防備匈奴,趙將李牧鎮守邊塞時,匈奴十餘年不敢入侵趙國邊境。秦滅六國後,蒙恬是秦代對抗匈奴的名將,他率領十萬軍隊北擊匈奴,完全收複黃河河套以南的土地。蒙恬死後,秦朝駐守長城防備匈奴的軍隊被調往內地鎮壓起義,匈奴得到了一個擴張的機遇,數十年內,匈奴奪去了水草肥美的河南地(今河套地區),還奪占了榆中(今內蒙古河套東北岸)以東至陰山之下的三十四個縣。
當時匈奴的君長名叫頭曼單於(?—前209年),在他的領導下,各分散的匈奴部落聯合成一個強大的部落國家。他的長子名冒頓(?—前174年),應該立為太子。後來,頭曼又續娶一王後,給他生一個少子,母子都為頭曼所寵愛。王後年輕貌美,想立親子為太子。時間一長,頭曼也產生了廢長立幼之意,但苦無借口。某天,他忽生一計。原來匈奴之西有一大月氏國,常犯匈奴邊界。頭曼於是派人前往月氏,表示願意以太子為質,以修兩國友好。實際上,這是一條借刀殺人之計。頭曼要借月氏之手,殺掉太子冒頓。
冒頓出質月氏不久,頭曼便發兵攻打月氏。月氏見頭曼來攻,下令誅殺冒頓。冒頓見風聲不對,便暗中偷得一馬,連夜逃出月氏,直奔匈奴大營。頭曼見冒頓脫險,頗感驚訝,當問明底細後,遂暫時打消了殺他之念,命其為騎將。
冒頓歸國後,知道父親這次攻打月氏的目的,是要置自己於死地。於是怨恨之心遂起,他決定除掉自己的政敵——父親、後母和幼弟,奪取王位,而要實施這樣的政變,首先要能製服手下的騎士,使之聽自己的號令,這得靠殺戮立威,於是,他命人造出一支上麵有孔的骨箭,使之發射有聲,取名鳴鏑。
冒頓訓練自己的部下,命令自己發射的鳴鏑所指,必須一律發箭射殺,否則砍頭。以後,冒頓逐步以打獵的鳥獸,自己喜歡的駿馬,甚至自己寵愛的妃子,當做鳴鏑發射的目標,所有沒能發射響應的,統統殺掉。於是,冒頓部下成為指哪兒打哪兒的利器。
然後,冒頓搭箭射向他父親放於野外的一匹好馬,眾人聞聲相隨,頓時將馬射死。冒頓目睹此景,心中大悅,自己心想,從屬可用了。數日後,冒頓突然用鳴鏑射向自己的老父,眾人也應聲同射。一代悍王,就這樣糊裏糊塗地死在亂箭之下。冒頓見單於已死,遂率眾返回頭曼內帳,將後母、少弟全部殺死,又處斬了幾名單於親臣,隨後召集臣僚,宣布了自己弑父緣由,便自立為單於。