京为馆阁校勘，同知礼院，在京城任官十年。至和元年（1054年），庞籍知并州兼河东经略，司马光改并州通判。嘉佑二年（1057年）司马光代庞籍巡视边地，主张在麟州筑堡失败损兵折将，庞籍因事获罪，司马光引咎离开并州，任职开封府推官。两年后改修起居注、判礼部。宋仁宗末年任天章阁待制兼侍讲同知谏院。嘉佑六年（1061年）迁起居舍人同知谏院。司马光立志编撰《通鉴》，作为统治者的借鉴。治平三年（1066年）撰成战国迄秦的《通鉴》八卷上进宋英宗，英宗命设局续修，并供给费用，增补人员。宋神宗以其书“有鉴于往事，以资于治道