河内郡(現在の河南省焦作市沁陽市)の人。隋の文帝に仕え、黄門侍郎、太子右庶子を歴任し、御史大夫に任じられた。
604年、文帝が崩御すると、楊素とともにその次男の皇太子の晋王・楊広を擁立した功績を残した[1]。
太原の西北にある汾陽宮を増設した煬帝に向かって「陛下ご自身の度重なる大工事を慎むべきであります」と張衡が直言を繰り返したため、煬帝に疎まれて突厥(現在の内蒙古付近)の国境である楡林郡太守に左遷された。
数年後に、江都宮監(建築長官)に任命される。しかし、江都郡丞の王世充と対立し、その讒言を信じた煬帝によって、610年に庶人に落とされた。
2年後の612年に警戒した煬帝によって、張衡は誅殺された。張衡の最期の言葉は「わしは長生きしたかったから、あんなこと(煬帝擁立計画)をしたのだ」(「我為人作何物事,而望久活!」)と叫んだという。