서울대학교 법과대학을 학사 학위하였고 공직에 투신하여 충청북도지사를 지냈다. 충청북도지사 재직 중 1980년 수해를 만나 수해재난 복구에 노력하였다.
내무부 차관으로 정계 입문하여 공직을 사퇴하였고, 제11대 국회의원 총선거 당시 민주정의당 전국구 후보에 추천, 지역구 후보로 출마하려 하였으나 전국구 제4번으로 입후보하여 당선되어 6선의원을 지냈다. 이후 제12대 국회의원 선거에는 지역구 후보로 출마 진천 음성 괴산에서 민주정의당 후보로 출마하여 당선되었으며 국회의원 재직 중 내무부 장관, 정무 장관 등을 지냈다.
제13대 국회의원(괴산군)을 역임하였으며, 1990년 민주자유당으로 당명이 바뀐 뒤에는 민주자유당 후보로 제14대 국회의원에 당선되었다. 이후 1990년의 삼당합당에 참여하여 민정계 의원으로 활동했고, 제15대 국회의원(한나라당)을 거쳐 제16대 국회의원 총선거에는 자유민주연합 비례대표로 출마하여 당선되었다. 16회 국회 재직 중 노무현 대통령 탄핵을 반대하였는데, 탄핵반대 의원 중 유일하게 실명이 공개되어 비난을 받기도 했다. 그러나 그는 소신을 굽히지 않았다. 18대 국회의원 선거에 출마하였으나 낙선하였다.