대구광역시 달성군 출생.
대구농림학교를 졸업하고 6·25전쟁이 발발하던 1950년에 육군 소위로 임관하여 일선 지휘관으로 참여하였다. 1954년에 미국 포병학교, 동 OAC를 졸업하였다.
1961년 군단포병대 대장을 지내고, 20대 후반에 충청남도 도경국장을 시작으로 1962년에 전남도경국장, 1963년에 치안국 정보과장, 1964년 서울특별시 경찰국장을 지내고, 1966년의 경찰전문학교 교장직을 마지막으로 경찰을 떠났다.
그리고 1963년에 대령으로 예편하였다.
1961년에 국학대학 정치학과를 졸업하고 1963년에는 동국대학교 대학원을 졸업하였으며, 미국 조지타운대학의 국제문제연구소에서 수학하였다. 1968년에 제주지사, 1969년 수산청장, 1971년 경상북도지사를 역임하면서 행정관료로서의 착실한 경륜을 쌓았다.
40대 초반의 나이인 1974년에 행정능력과 지휘능력을 인정받아 서울특별시장으로 4년 4개월간 봉직하여 장수시장의 기록을 세웠다. 추진력이 매우 강하였다고 평해지며, 황야의 무법자라는 별명을 얻은 그는 서울특별시장 재직 때 을지로·청계로·종로 등 도로확장에 주력하였다.
서울특별시장의 경력을 평가받아 1978년에 내무부장관으로 임명되었다. 박정희(朴正熙)대통령의 신임 속에서 내무행정을 수행하던 그는 이른바 10·26사태로 계엄령 선포. 최규하(崔圭夏)의 과도정부 구성, 12·12사건 등의 격변의 와중에서 내무장관직을 사임하였다.
그는 당시의 이른바 신군부 세력에 의하여 김종필(金鍾泌) 등과 함께 부정축재자로 몰려 연행되기도 하였다. 그러나 1987년 6월 민주항쟁의 소산인 직선제 개헌에 의하여 실시되는 대통령선거를 앞두고 김종필과 함께 신당 창당에 나서, 신민주공화당에 참여하였다.
신민주공화당 부총재, 경상북도 지부위원장으로 활동하였으며, 1988년의 제13대 국회의원선거에서는 대구광역시 달성군·고령지구에서 당선되어 초선 국회의원이 되었다. 1990년 3당합당 이후에는 민주자유당에 들어가서 당무위원으로 활동하면서, 1992년 제14대 국회의원선거에서는 민자당 공천을 받아 재선되었다.
그 뒤 1994년에는 국회 국방위원회 위원으로 활동하고 시우회 제2대 회장직을 지냈다. 1995년 민자당을 탈당하고 김종필과 자유민주연합이라는 새로운 정당을 결성하여, 자민련 대구 달서군 지구당위원장, 자민련 부총재직을 지냈다.
수상경력으로는 은성충무·금성화랑·무공훈장, 녹조소성훈장, 중화민국경성대수장, 청조근정훈장, 가봉국 1등수교훈장을 받았다.