1933년 경상북도 칠곡군 출생으로, 부산사범학교를 졸업했다. 한국전쟁이 일어나자 학도병으로 입대했으며, 1953년 육군사관학교에 입학해 1956년 12기로 졸업했다. 1959년 서울대 대학원 영어영문학과에서 석사학위를 받았다.
1974년 수도경비사령부 작전참모가 되었고, 1976년에는 대통령 안보담당 특보의 보좌관이 되었다. 1980년 보병 제3사단 사단장, 1980년 수도경비사령부 사단장을 지냈으며, 1981년 육군 소장으로 예편했다.
1982년 3월 한국전력공사 부사장이 되었고, 1982년 11월 국가안전기획부 차장보를 거쳐 1983년 1월 국가안전기획부 제2차장이 되었다. 1985년 2월 제19대 총무처 장관으로 임명되었으며, 1986년 1월 제4대 체육부 장관이 되어 1986년 제10회 아시아경기대회 조직위원회 위원장을 겸임했다. 1986년 5월 서울올림픽조직위원회 위원장이 되어 1988년 12월까지 재임하면서 1988년 서울올림픽을 성공적으로 개최하는데 기여했다.
1988년 12월부터 1989년 7월까지 국가안전기획부 부장을 역임했고, 1990년 12월 제23대 서울특별시장이 되었으나 2개월 만에 물러났다. 1992년 민주자유당 구미시 지구당 위원장이 되어 제14대 국회의원 선거에 출마해 당선되었고, 1996년 제15대 국회의원 선거에서 구미 갑구 신한국당 후보로 출마해 재선에 성공했다. 1997년부터 1998년까지 한나라당 세계화추진위원회 위원장, 1998년 환경보존특별위원회 위원장 등을 맡았다.
1998년 4월 한나라당을 탈당해 자유민주연합에 입당하여 부총재가 되었다. 1991년 미국 서던캘리포니아대학교 (USC)에서 교육학 박사학위를 받았다.
2006년 대한민국 재향군인회 제31대 회장에 선출되었고, 2009년 4월 재향군인회 제32대 회장으로 연임되었으나 2009년 7월 급성 폐렴으로 사망했다. 저서로 『하늘과 땅, 동서가 하나로: 서울올림픽, 우리들의 이야기』(1990) 등을 남겼다.
상훈으로는 청조근정훈장, 화랑무공훈장 등을 받았고, IOC(국제올림픽위원회) 금장을 받았으며, 외국으로부터도 프랑스문화훈장, 벨기에최고훈장, 자유중국문화훈장 등이 있으며, 사망 후 국민훈장 무궁화장이 추서되었다.