馬氏,故扶風人,至公高祖而徙處云中。贈太師諱某者,于公為曾祖。贈太師、中書令諱某者,于公為祖。龍捷左廂都指揮使、江州防御使、贈太師、中書令、尚書令蔡公諱某者,于公為父。蔡公從太祖定天下,力戰有功。當是時,云中已為契丹所得,故馬氏又徙處浚儀,今開封府祥符也。
公諱某,字子元。蔡公之終也,年七歲,太祖召見禁中,有司言例當補殿直,詔特授西頭供奉官,而賜以名。開寶五年,年十八,監彭州兵馬,以嚴飭見憚如老將。太平興國三年,領兵戍秦州清水,奸人李飛雄乘驛稱詔捕公及秦隴巡檢劉文裕等,將擊之秦州,因盜庫兵以反。公辨其詐,與文裕執飛雄治殺之。五年,監潭州兵馬,改東頭供奉官。
雍熙二年,又監博州兵馬。劉延讓敗于君子驛,而契丹歸矣,公方料丁壯,集芻糧,繕城治械如寇至。吏民初不悅其生事也,已而契丹果至,度不可攻,乃去。四年,改西京作坊副使,將屯于冀州。端拱元年,移知定遠軍。時議發河南十三州之民轉饟河北,公告轉運使樊知古,此軍聚兵少而積粟多,簸其腐尚可得十七。知古用此得粟五十萬斛,以罷河南之役。事聞朝廷,太宗嘉之。二年,深州新蹂于契丹,城郭廬舍多壞而流民眾,乃移公知深州。公至數月,則壞者完,流者復,舉州忘其寇戎之故而以公為能撫我。會保州不治,移往代之。
淳化二年,又移知慶州。羌萬人以怨程德元來寇,公誘其渠帥,諭以威信,即皆引去。四年,遷西京作坊使知梓州。五年,李順為亂于蜀之西川,以公往討,又以為先鋒,平劍州。召還,至三泉,而復以公與王繼恩討賊。繼恩怒公抗直,使守彭州,盡收其軍,而與之羸卒三百。賊率其眾至,號十萬,公力戰一日,亡其卒大半,乃夜獨出,招救兵復入,賊終不能得城而以敗去。除成都府兵馬鈐轄,遷洛苑使。五年,除蜀、漢九州島都巡檢使,已而又兼成都府兵馬鈐轄。
真宗即位,改內苑使。蜀卒劉旰聚黨數千人為亂,所攻數州,至輒取之。公以卒三百,追至蜀州,與戰,旰走卭州,而招安使上官正召公歸成都計事,公為正畫曰:“賊破卭州,必乘勝劫掠,度江薄我,既息而戰,我軍雖倍,未易敵也,不如迎其弊急擊,破之必矣!”遂行,次方井,與正合,殺旰等無噍類。真宗賜書獎諭,賞以錦袍金帶。
咸平元年,加澄州刺史,知秦州。諸羌質子有三十年不釋者,公悉歸之。諸羌德公,訖公去,無一人犯塞。小泉銀坑久不發,掌吏盡產以償歲課,而責之不已,公奏得釋,而歸其產。四年,就除西上合門使,知成都府,兼本州島兵馬鈐轄。有告龍騎士謀為變者,所引以千數,公捕殺其首七人,而置其余無所問。自乾德后,歲漕蜀物,以富人為送吏,多坐漂失籍其家。公奏擇三班使臣及三司軍大將代之,而課其漕事為賞罰,至今便之。六年,移鄜延路駐泊兵馬都總管,兼知延州。蜀人于公去,皆環以泣。公至延州,羌方以兵覷邊,會上元,開門張燈,視以無為,而羌卒不能為寇。又移知鎮州,兼本州島兵馬都總管。景德元年,契丹入邊,民入保城,公與之約:“盜一錢者死。”有盜錢二百者,公即殺之。于是,自澶以北,城郭皆晝閉。詔使過,公輒留之,而募人間行送詔,皆得其報以聞。又以便宜使所至受諸漕挽給邊之物,故契丹欲虜掠,無所得。車駕次澶州,大將王超提卒數十萬,逗留不赴,公屢趣之不為動,移書譙讓,乃始出師,猶辭以中渡無橋。則公先已度材,一夕而橋就。上聞,手詔褒之,且知公果可以屬大事也。二年,移知定州,又除東上合門使,樞密院都承旨。三年,遂以檢校太保簽書樞密院事。