西汉琅邪臬虞(今山东即墨东北)人,字子阳。少好学,兼通五经。昭帝时,为昌邑王中尉,直言敢谏。后昌邑王嗣位为帝,旋因昏乱被废黜,他坐罪从事苦役。宣帝时,为谏大夫,上疏议论政事得失,以不切实际,托病辞官。元帝时,又应征为谏大夫,病死于赴亦途中。