唐太宗貞觀年間,侍禦史張行成請袁天罡看相。張行成字德立,定州義豐人。張行成出身中山張氏,早年曾師從河間名士劉炫,隋末時被舉為孝廉。他在謁者台擔任散從員外郎,隋亡後又效力於王世充所建立的鄭國,授為度支尚書。
武德四年,李世民滅亡鄭國,逼降王世充。張行成也歸順唐朝,因曾是隋朝官員,被任命為穀熟縣尉。他家境貧寒,代替縣中計吏留在京城長安,並參加製舉考試,結果考中乙科,改任為陳倉縣尉。
武德七年,張行成得到吏部侍郎張銳的舉薦,調任富平縣主簿。後來,張行成在富平縣任職期滿,被召入朝中,授為殿中侍禦史。有一次,他請袁天罡為自己看相。
袁天罡看後對張行成說:"您五官麵相已成,江耳淮鼻河目溝口,下庭豐滿,得官雖晚,終將處在宰相之位。"
後來的事情,果然就像袁天罡說的。張行成執法嚴明,彈劾官員,不畏權貴,深得唐太宗的賞識,後升任給事中,參與朝中大政方針的議論。
貞觀十七年,唐太宗立晉王李治為皇太子,並挑選朝中重臣到東宮任職。張行成時任刑部侍郎,以本職兼任太子少詹事,成為李治的東宮屬官。
貞觀十九年,唐太宗東征高句麗,命皇太子李治留守定州監國,並讓張行成與高士廉、劉洎、馬周、高季輔一同輔佐太子,執掌機要政務。後來,張行成又赴行在覲見唐太宗,獲得大批賞賜。
貞觀二十年,唐太宗返回長安,以張行成為河南巡察大使。張行成回朝後,又代理尚書左丞。是年六月,唐太宗巡視靈州,命李治隨行。張行成卻建議讓太子留京監國,接待百官,決斷政務。唐太宗采納了張行成的意見,還加封他為銀青光祿大夫。
貞觀二十三年,唐太宗病逝。太子李治在張行成與高季輔的擁戴下,即位於太極殿,史稱唐高宗。他任命張行成為侍中,兼刑部尚書,成為宰相,並封北平縣公,監修國史。
永徽年間,天下大旱,三個月沒有下雨。張行成認為是宰相沒有治理好國家的原因,便以年老為由請求退休。
唐高宗認為是皇帝德行淺薄所致,與宰相無關,駁回了張行成的退休請求。張行成再三奏請,高宗竟然哭著道:"你是朕的元從老臣,為何非要棄我而去。"
張行成惶恐不已,隻得繼續署理政務,不敢再提退休。永徽二年,張行成升任尚書右仆射、同中書門下三品。第二年,唐高宗立陳王李忠為皇太子,命張行成兼任太子少傅。
永徽四年九月,張行成病逝於尚書省官署,終年六十七歲。唐高宗廢朝三日,賞賜東園秘器,命九品以上官員登門致哀,而後又命宮中女官到張府督理喪事,以少牢之禮祭祀。張行成被追贈為開府儀同三司、並州都督,諡號為定。 弘道元年,張行成獲許配享太廟,附祭於高宗廟廷。