사마광 송진종의 천희 3년인 1019년에 지금의 산서성 하현인 섬주에서 태어났다. 왕안석보다 2살 위였다. 어릴 때부터 신동으로 알려진 그는 물이 가득 차 있는 커다란 독에 빠진 아이를 돌로 깨서 구한 「소아격옹도」 일화를 남기기도 했다. 20세 때 진사에 급제해 순조롭게 승진했다. 그 이후 신법이 채택되고 왕안석의 시대가 오자 사마광은 미련 없이 곧바로 사퇴한 뒤 『자치통감』의 저술을 명한 송영종의 제의를 받아들여 낙양에 칩거하며 저술에 몰두했다. 필생의 역저 『자치통감』은 그의 나이 48세 때인 치평 3년의 1066년에 시작해 나이 66세 때인 원풍 7년의 1084년에 마무리됐다.