张衡,字建平,河内人。祖父张嶷,魏时任河阳太守。父张允,周时任万州刺史。

  张衡自幼怀有高尚的志向,有坚强耿直之风。十五岁那年到太学学习,研习精要,思虑深邃,受到同辈的推崇。周武帝在太后丧葬期间,与身边的人出外打猎,张衡散开发髻,载着棺材跟随周武帝,扣住马首直言劝谏。武帝嘉奖张衡,赐给他一身衣服,一匹马,擢升为汉王侍读。张衡又到沈重那里学习《三礼》,约略探究《三礼》主旨。多次升迁至掌朝大夫。

  隋文帝受禅即位,任张衡为司门侍郎。晋王杨广任河北行台,张衡历任刑部和度支二曹郎。行台之制废除后,张衡任并州总管椽。晋王杨广转而牧守扬州,张衡又任掾属。晋王非常亲近重用张衡,张衡亦是竭尽忠诚。争夺皇太子位之计,大多是张衡谋划的。改任扬州总管司马。熙州李英林造反,署中设置文武百官。朝廷任命张衡为行军总管,征讨平定李英林叛乱,官拜开府。及晋王为皇太子,任张衡为右庶子。

  炀帝即位,张衡任给事黄门侍郎、银青光禄大夫。升任御史大夫,深得炀帝的亲信重用。大业三年(607),隋炀帝临幸榆林郡,回至太原,对张衡说“:朕想到你的家宅看一看,你可以作为朕的主人。”张衡即疾驰至河内,和宗族准备牛羊酒菜迎接炀帝。炀帝上太行山,开辟直道九十里,以抵达张衡宅第。炀帝喜欢这里的山川泉水,留下宴饮三日,对张衡说:“当初跟随先皇拜祭太山的时候,途经洛阳,远远瞻望这个地方,因不能过此而深为遗憾,想不到今日得遂昔日的愿望。”张衡伏地俯首辞谢,奉觞为炀帝祝寿。炀帝更加高兴,赐给张衡宅旁边的土地三十顷,良马一匹,金带、缣纟采六百段、衣服一身、御用餐器一套。张衡坚决推辞,炀帝说:“天子临幸这里,就是为了这个,不足以辞谢。”张衡又奉献食物给炀帝,炀帝命令赏赐给公卿,下至卫士,没有不沾沐皇恩的。

  张衡认为原有的诸侯王府第,恩宠都没有能够和他相比的,很是自我骄傲矜贵。第二年,炀帝临幸汾阳宫。这时,炀帝想扩大汾阳宫,命令张衡和纪弘整准备图纸上奏。张衡寻找机会进谏,以连年劳役、百姓疲惫为理由请求炀帝不要再大兴土木。炀帝非常不高兴。后来曾经目视张衡对侍臣说“:张衡自称是按照他的计谋,让我获得了天下。”当时,齐王杨..失去了炀帝的宠爱,炀帝令人秘密地搜求齐王的罪行。有人诬陷杨..违犯制度,将伊阙令皇甫诩带进汾阳宫。又记录先前临幸涿郡和祭祀恒山时,当地父老去谒见,衣冠不整。炀帝指责张衡身为宪司而不能加以匡正,将张衡贬出京城任榆林太守。

  第二年,炀帝又临幸汾阳宫,张衡督促工役修筑楼烦城,因此谒见炀帝。炀帝厌恶张衡身体没有瘦下来,认为他心中不记念过失,因而对张衡说:“你太肥胖了,应该回到榆林郡去。”张衡又到了榆林。不久又敕令张衡去江都宫监督工役。有人到张衡那里告江都的监工,张衡不予受理,回去把诉状交给了监工,那个告状的人因此而受到监工的严厉报复。礼部尚书杨玄感出使到江都,那人到杨玄感的住处喊冤。杨玄感认为张衡这样做很不对。等到二人相见,张衡对那事情只字不提,又先对杨玄感说:“薛道衡真是被冤枉死的!”杨玄感把这些事情都上报给了炀帝。江都郡丞王世充又上奏张衡不断地减少每顿饭的食物。隋炀帝大怒,把张衡锁械到江都刑场,准备斩首。接着就除去名籍,放回故里。炀帝命令其亲族时常观注张衡的所作所为。

  大业八年,炀帝从辽东回到京城,有人妄言张衡心怀怨恨,诽谤朝政,炀帝就将张衡赐死家中。临死时,张衡大声说:“我替别人做了什么事情,指望长久活下去!”监督行刑的人塞起耳朵,督促他赶快自尽。唐高祖武德初年,朝廷认为张衡赐死不当其罪,追赠大将军,南阳郡公,谥号为忠。有子名希云。