司馬光領命,遂遴選秘書丞劉恕、國子監直講劉攽(bān)、進士範祖禹參與並協助編修。劉恕博聞強記,自《史記》以下諸史,旁及私記雜說,無所不覽,於商定編次用力頗大。遇史事紛雜難治者,多請他解決,對魏晉以後事,考證尤為精辟。劉攽專漢史,範祖禹精唐史,皆有較高的造詣。他們協助司馬光編史,既分工又合作,均作出重要的貢獻。
為編撰這部編年體史書,司馬光與館僚們查閱了大量的曆史文獻資料。司馬光於書成後所撰《進〈資治通鑒〉表》中,提到編撰此書,“通閱舊史,旁采小說,簡牘盈積,浩如煙海”①。司馬光等利用宮廷藏書的便利條件,除翻閱正史外,還有大量的雜史諸書。其所參閱的書籍,計有正史、編年、別史、雜史等十類,共三百餘種。其中絕大多數的文獻資料,經曆後代的滄桑,已佚失殆盡,今賴司馬光此書,方得存其梗概。對於浩如煙海的文獻資料,司馬光與館僚們進行了嚴格的審查鑒別。他們以極其嚴謹的治學態度,於文獻資料的取舍標準,不囿於積習,不依傳統觀念行事,對實錄、正史未必皆可據,雜史、小說未必皆無憑,從而使編史的史料征引,既準確又翔實。如其“敘王世充、李密事用《河洛記》,魏鄭公諫諍用《諫錄》,李絳議奏用《李司空論事》,睢陽事用《張中丞傳》,淮西事用《涼公平蔡錄》,李泌事用《鄴侯家傳》,李德裕太原澤潞回鶻事用《兩朝獻替記》,大中吐蕃尚婢之事用林恩《後史補》,韓鳳翔謀畫用《金鑾密記》,平龐勳用《彭門紀亂》,討裘甫用《平剡錄》,記畢鐸、呂用之事用《廣陵妖亂誌》”②。
司馬光自領命入宋都汴梁(今河南開封)之後,便悉心投入編史工作,為此,他與館僚們付出了極大的精力,耗費了巨大的心血。他們收集到兩晉,南朝宋、齊、梁、陳,以及隋等六朝以來的奏禦,而以唐代的文獻最為豐富。遂由範祖禹將諸書依年、月編次為“草卷”。因所錄資料頗豐,他們便將抄錄史事文字的紙卷,每四丈截為一卷。而後司馬光親自逐卷審定,每三天審定一卷,依據文獻資料所述史事的詳略、真偽,隨時進行刪減增補。範祖禹等館僚初步編次的“唐紀”“草卷”即有八九百卷之多,司馬光先粗審成編,然後又細刪,直至刪存至數十卷。南宋著名史學家李燾於其所編《續資治通鑒長編》的進書表中,提到“臣竊聞司馬光之作《資治通鑒》也,先使其寮采摭異聞,以年月日為叢目。叢目既成,乃修長編。唐三百年,範祖禹實掌之。光謂祖禹,長編寧失於繁,無失於略。今《唐紀》取祖禹之六百卷,刪為八十卷是也”。
為使編撰順利進行,司馬光每日夜分始眠,五鼓即起,工作雖繁重艱巨,卻不失細致認真。其書修成後,有部分“草卷”積存於洛陽崇德寺修書局,竟堆滿兩屋。如此浩繁的史事輯錄,於抄錄時,竟無一潦草之跡,足見司馬光等人嚴謹的治學態度。
司馬光編修此書,是欲為宋帝治理朝政提供曆史鑒戒,故盡可能真實詳盡地反映史事。其對曆代統治者的昏庸殘暴、驕奢淫逸亦有所揭露,對因統治者的腐敗統治,而造成“百姓疲弊”、“饑寒窮愁”,導致百姓反抗、起義之事,亦不回避。
此書的編撰大致分作三步:第一步為編寫“叢目”,即由館僚等協修者將收集的史料,標明事目,依時間先後加以排列。第二步為編輯“長編”,即對“叢目”中的史料加以考證辨析,擇其記述詳盡者,重新編寫。此亦由館僚及協修者完成,由書吏抄錄。第三步則由司馬光據“長編”所載,考其同異,刪其繁冗,修改潤色,凡是非曲委定奪,皆出自其手,而終成定稿。書中往往一事參照數種材料寫成。遇年月、事實有歧異之處,均加考訂,皆注明斟酌取舍之由,以為《考異》。敘事雖依時間編次,然多用追敘和終言之法,說明其前因後果,明晰而係統。所敘事以政治、軍事為主,展示曆代君臣成敗、治事、安危之跡,以為借鑒。而較少記載曆代經濟、文化史事。
宋治平四年(1067),宋帝趙曙死,其子趙頊繼位,是為宋神宗。趙頊賜書名為《資治通鑒》,並序以獎之。熙寧三年(1070),司馬光因反對同中書門下平章事王安石的變法,遭貶出朝,任知永興軍(今陝西西安)。不久,又退居西京洛陽(今屬河南),曆任閑職,遂以書局自隨,專誌修史。直至元豐七年(1084)完成此書,曆時十九年。