1925년 1월 16일 경상북도 문경 출생으로, 본관은 인천, 호는 우치(友癡)이다. 1943년 중앙고등학교를 졸업한 후, 1948년 서울대학교 정치학과를 졸업하였다.
대학 졸업 후 모교인 중앙고등학교에서 교사 생활을 하였으며, 신흥전문학교 강사와 한성일보 기자로 활동하였다. 1949년 경상북도 문경군 군수로 공직 생활을 시작하였으며, 1953년 선산군수를 역임하였다. 1958년 미국 아메리칸대학교(American University) 대학원 공공행정학과 과정을 수료하였으며, 귀국 후 내무부 재정과장을 지냈다.
1960년 명지대학교 교수로 부임하여 재직 기간 중 『민국일보』 도쿄 특파원으로 활동하였으며, 1963년 국민당 재정부장으로 선임되며 정당인의 길을 걷게 되었다. 이후, 국민당 총무부장과 신민당 사무처장으로 활동하다가 1971년 7월 전국구로 제8대 국회의원에 당선되었다.
제3공화국과 제4공화국에서는 야당인 신민당 의원이 되어 신민당 대변인을 거쳐 1970년 3월 문경·예천 지역구에서 제10대 국회의원에 당선되었다.
1980년 국가보위입법회의 구성에서 구 야당의 대표격으로 의원에 포함된 것을 계기로 신군부의 민주정의당에 참가해 대표위원을 지냈다. 제11대 국회의원 선거에서 민정당으로 당적으로 바꿔 출마하여 당선되었으며, 1983년부터 1985년까지 국회의장을 지냈다. 이 시기 한국-화란 의원친선협회 회장, IPU 한국대표단장, 민정당 전당대회 의장, 제70차 IPU 총회 의장 등을 역임하였다.
1985년 제12대 국회의원에 당선된 후, 1987년 대통령 선거 민정당 전당대회 의장을 맡았으며, 한중의원친섭협회 회장 및 국회 개헌특위원장, 민정당 개헌특위 위원장으로 활동하였다.
1988년 전국구로 제13대 국회의원에 당선된 후, 민정당 상임고문으로 활동하였고, 1992년 10월 대통령 선거 때는 민주자유당의 김영삼 후보 선출에 반대하여 탈당한 이종찬 계열의 새한국당 창당에 준비위원장으로 참여하였다. 이후 국민당 공동대표 최고의원으로 활동하다가 1992년 12월 탈당하였다.
이후, 한국정치발전연구회 고문, 고려중앙학원 재단 이사장 등을 역임하였다. 1999년 5월부터 2001년 4월까지 제11대 대한민국헌정회 회장을 지냈으며, 2010년 6월 26일 향년 86세로 사망하였다.
상훈으로는 녹조소성훈장과 콜럼비아 민주헌정 대십자상, 페루 대십자훈장 등이 있으며, 1998년 6월에는 중앙고 교우회 자랑스러운 중앙인상을 수상하였다.