公元前108年,司馬遷做上了太史令,開始閱讀大量史書,整理資料,104年,正式著述《史記》。自始至終,司馬遷謹守原則,每寫一個曆史人物或事件,都要反複考察研究,為此,他遍訪各地遺跡,到民間了解。無論是帝王還是將相,司馬遷秉持公正,不抹殺其光輝的一麵,但也不避開其陰暗的一麵。對功勞大書特書,對過失猛批狠批。遠到舜帝,近到武帝,無一遺漏。
公元前99年,發生了李陵事件。當時,滿朝文武多數攻擊李陵兵敗投降一事,武帝也自憤恨,瞥眼看到司馬遷,便問:“對李陵的事,你怎麼看?”司馬遷已對此事,有過詳細的推敲,認為李陵是迫不得已,便說:“李陵隻有幾千人馬,匈奴兵十幾倍於他,勝算寥寥,兵敗是很正常的,他或許並非真要投降,隻是想等待機遇。”武帝大怒,將司馬遷打入大牢。在獄中,司馬遷長歎不已。一個獄卒平素很敬佩司馬遷的為人,便小聲問他:“太史公,你不過隻說了幾句公道話,為什麼聖上要如此待你?”司馬遷搖頭不語。獄卒想了一下說:“我明白了,這次戰爭是聖上決定的,李將軍兵敗,他自然覺得顏麵大無,你替李將軍開脫,顯然是說聖上的不是。”司馬遷輕歎一聲,坐了下來。獄卒說:“太史公,難道你不想出去嗎?你有什麼話讓我傳達,盡管說吧,隻要能幫助你,拚了我這條老命也值。”司馬遷說:“你不知道,聖上要我進來,就沒想我活著出去。”獄卒大驚:“難道聖上要治你死罪?”司馬遷點點頭說:“我想會的,他這次動怒,並非因李將軍一事,而是因為我編撰史書。”獄卒茫然說:“你身為太史令,編撰史書是你的職責啊,聖上怎麼會惱怒?”司馬遷說:“因為我和以往的史官不同,他們或多或少要看當朝帝王的眼色,很多史事誇張其辭,而我記錄真實,讚正義,批邪惡,直抒胸臆,有許多地方衝撞了聖上。”獄卒終於聽明白了,說:“太史公,你放心,這些天,我盡量好好照顧你。”說著,歎息著離開了。
不久,朝中傳聞李陵帶著匈奴兵侵犯漢朝邊境,武帝大怒,對著滿朝文武說:“事實就在眼前,那李陵果然負我,誰還為李陵辯解?”遂下令殺了李陵的家人,司馬遷也被判了死刑。傳刑官來到獄中,問司馬遷:“你還有什麼後事要交代?”這一段時間以來,司馬遷雖然想過隨時會死,但是,當死亡突然來臨時,他還是震撼不已。倒不是司馬遷是個怕死的人,因為他突然想起了父親病危時說的話,以及父親深望著他的眼神。“我不能死?不能。”司馬遷喃喃地說。傳刑官說:“你不想死?那麼,你隻有選擇免死的方式了。”在漢朝當時,是可以選擇免死的,但是,一個條件是用重金贖罪,一個條件是接受腐刑。司馬遷一身清貧,自然拿不出錢來。他沉默了半晌,咬咬牙,說:“好,我願接受腐刑。”腐刑是一種極其殘酷的刑法,很多人寧可選擇去死,也不甘受其辱。但是,司馬遷知道自己不能死,他要完成父親的願望,繼續編著史書。於是,他接受了腐刑,忍辱負重地活了下來。
從此,司馬遷忍受著來自身心的巨大痛苦,發憤著書,到公元前93年,一部五十幾萬字的史書,基本完成,又兩年修改完畢。這部書上自皇帝,下至武帝,含十二“本紀”,三十“世家”,七十“列傳”,十“表”,八“書”計五大部分,共一百三十篇,成為中國第一部紀傳體通史。
魯迅先生曾在《漢文學史綱要》一書中稱《史記》是:“史家之絕唱,無韻之離騷”。可見,就中國史學的發展而言,《史記》的貢獻無疑是巨大的。