신라의 가해현(加害縣)이었는데 757년(경덕왕 16)가선(嘉善)으로 고쳐 고령군(古寧郡)의 영현(領縣)으로 하였다.
940년(태조 23) 가은으로 고쳤고, 1018년(현종 9) 현을 파하여 상주(尙州)에 합쳤다가 1390년(공양왕 2)문경군으로 옮겼다. 1973년가은면이 읍으로 승격되었다.
이 지역은 소백산맥의 남사면에 있어 신라 초기 국경요새로 가은 고성(古城)이 있었으며, 신라말에 고려태조와 후백제의 견훤(甄萱)이 전투를 벌인 적이 있었다. 가은에서 소백산맥의 회유치(回踰峙)를 넘어 보은(報恩)과 이어지는 산간도로가 발달하였다.