史书没有记载他的生年。隋文帝时为太子右庶子，黄门侍郎。协助杨广夺取皇位，传说文帝就是他亲手所杀。杨广即位为隋炀帝，很重用张衡，官至御史大夫。后来被委派营建汾阳宫时，张衡借机劝谏隋炀帝爱惜民力，遂见猜忌，获罪除名为民，放还田里。大业八年，以诽谤朝政之罪被赐死于家。张衡死前大喊：「我为人作何物事，而望久活！」监刑者捂住双耳，将他杀死。义宁年间，以死非其罪，赠大将军、南阳郡公，谥号忠。子张希玄。