경상북도 달성군 출생이며 1950년대구사범학교에 진학하여 1년제 교육을 받고 국민학교 교사 자격을 얻었다. 한국 전쟁 중이던 1951년에 육군 갑종장교 포병 소위로 임관하여 전쟁에 참여하였고, 전쟁이 끝난 1954년 미국 육군포병학교를 졸업 이후 1961년육군중령으로 6군단 포병 제993대대장으로 있을 때 일어난 5·16 군사정변 당시 육군본부를 점령하는 데 기여하여, 당시 '혁명 주체세력'으로 인정받아 충남도경 국장과 전남도경 국장을 지낸 뒤, 1963년육군대령으로 예편하여 경찰로 근무, 치안국 정보과장, 서울시경 국장, 경찰전문학교 교장을 차례로 맡았다.
1968년 제주도지사로 부임하였다. 부임 후 박정희 대통령의 지방은행 육성 정책에 따라 제주은행을 설립하는 데 기여했다.[1]
1974년에는 서울특별시장에 부임했다. 이 시기에 원래 영등포-을지로-삼성동 구간뿐이던 서울 지하철 2호선을 거대 순환선으로 계획했다.
1988년 열린 13대 국회의원 선거에서 신민주공화당 소속으로 달성군·고령군 선거구에 출마했으며 50.93%의 득표율로 당선되었다. 이후 같은 선거구에서 14대 국회의원으로 당선되었다.