匡衡出身於農家,非常貧窮,但他自幼好學,不為家貧所誤。匡衡年少時,經常給人家當短工而不取報酬,只以借主人的書看作為交換條件。他的鄰居比較富裕,為了學習,匡衡便將墻壁掏個洞,引來鄰居家的燈光讀書,這就是人們熟悉的"鑿壁偷光"的故事。
匡衡聰穎好學,精力旺盛,他非常喜歡探討詩句的含義。眾儒生曾編出順口溜,說匡衡"無說詩,匡鼎來。匡說詩,解人頤"。當時大文人蕭望之、梁賀曾與匡衡對詩,匡衡談吐有據,言語深美,深得蕭、梁二人的贊賞。於是,蕭望之親自上奏折,請求皇帝任用。
漢元帝即位,賜匡衡為郎中,後升遷博士給事中。匡衡曾先後出任光祿大夫、太子少傅、光祿勛禦史大夫等職。漢元帝在位時,還曾讓匡衡居於殿中為師,為朝內官員講授詩賦,不少縣官也前往旁聽。建昭三年(前36年),丞相韋玄成病死,匡衡代之為相,賜封樂安候。
元帝死,漢成帝即位,匡衡上疏建議:"戒妃匹,勸經學,學威儀之則",皇帝欣然采納了他的意見。建始四年(前31年)因奏本石顯之事未成,遭貶,免除丞相之職。幾年以後,其子匡昌為越騎校尉,醉後殺人,匡衡免冠待罪。後辭官還鄉,病死家中。