본관은 안동(安東). 경상북도 영천 출생. 1940년 일본 와세다대학 정경학부를 졸업하고 1950년 제2대민의원으로 당선되어 의정활동을 시작할 때까지 여러 정치단체에 적을 두면서 정치에의 입문을 시도하였다.
1954년 제3대민의원으로 당선될 때까지 무소속으로 남아 있었으나, 자유당 정권의 장기집권 및 독재에 대항하여 투쟁하였다.
1960년 제5대 민의원선거에서도 당선되어 4선의원이 되었으며, 민주당정권이 들어서면서 국방부장관이 되었다. 국방부장관으로 있을 때 군부내 숙정운동이 일어나 군기강이 흔들렸으나, 군의 위계질서와 부패척결의 조화를 이루는 선에서 인사 및 숙청을 시도하였다.
제2공화국 당시 민주당내 신·구파 사이의 갈등이 노정되면서 신민당으로 분당되기에 이르렀는데, 그는 구파의 중진급 인사로 신민당의 중앙상임위원회 의장을 지냈다.
5·16군사구테타로 제3공화국이 들어서면서 다시 야당정치활동을 재개하였는데, 1964년 민정당(民政黨) 중앙위원회 의장, 1965년 민정당 전당대회 의장, 1969년 신민당 지도위원 등을 맡았고, 1971년 제8대 국회의원 선거에서 서울 종로구에서 출마, 당선되어 본격적인 반독재의 대여투쟁을 재개하였다.
1979년 10월 26일 박정희 대통령 시해사건 이후 제5공화국의 국가보위입법회의 의원직을 맡기도 했다.
그 뒤 정통 야당의 부활을 위하여 김의택(金義澤)과 민권당(民權黨)을 창당하여 고문직을 맡았다. 그러나 제11대국회의원선거에서 민권당이 참패하면서 그의 정치활동은 사실상 막을 내렸다.