司马迁10岁开始学习古文书传。约在汉武帝元光、元朔年间,向今文家董仲舒学《公羊春秋》,又向古文家孔安国学《古文尚书》。20岁时,从京师长安南下漫游,足迹遍及江淮流域和中原地区,所到之处考察风俗,采集传说。不久仕为郎中,成为汉武帝的侍卫和扈从,多次随驾西巡,曾出使巴蜀。元封三年(前 108),司马迁继承其父司马谈之职,任太史令,掌管天文历法及皇家图籍,因而得读史官所藏图书。太初元年(前104),与唐都、落下闳等共订《太初历》,以代替由秦沿袭下来的《颛顼历》,新历适应了当时社会的需要。此后,司马迁开始撰写《史记》。后因替投降匈奴的李陵辩护,获罪下狱,受腐刑。出狱后任中书令,继续发愤著书,终于完成了《史记》的撰写。