전라북도 옥구군(현, 전북특별자치도 군산시) 광면 신풍리 출생으로, 호는 도암(道庵), 본관은 김해이다. 군산공립중학교를 졸업한 후 일본으로 유학하였고, 1937년 교토대학교[京都大學校] 농화학부를 졸업하였다.
이리농사시험장 책임자를 거쳐, 1948년부터 농림부 농정과 과장으로 근무하다가, 정치에 입문하였다. 1954년 제3대 민의원 선거에 출마하여 군산 · 옥구 지역에서 민주국민당 소속으로 당선되었다. 1955년 9월 민주당 창당과 함께 농민부 차장으로 임명되었으며, 1958년부터는 민주당 산업부 부장으로 활동하였다.
1960년 민주당 소속으로 제5대 민의원에 당선되었다. 민주당의 신파로, 1961년 민주당 내 합작파 의원들로 구성된 정안회(政安會)의 회원으로 활동하였다. 1961년 1월 장면 내각에서 나용균 장관의 후임으로 제7대 보건사회부 장관에 임명된 후, 5·16 군사정변으로 사퇴하였다.
정치 연금이 해제된 후, 다시 정치활동을 시작하여 1963년 민주당 기획위원 겸 정책위원장에 임명되었으며, 같은 해 허정을 중심으로 창당된 신정당의 발기준비위원으로 참여하였다. 1965년 5월 윤보선을 중심으로 창당되었던 민정당과 민주당이 연합하여 민중당이 창당하자, 12월 유옥우의 사퇴로 공석이 된 민중당 중앙상무위원회 의장이 되었다. 1967년에는 신민당 창당에 참여하여 신민당 지도위원으로 활동하였고, 1968년 6월 신민당 중앙상무위원장으로 선출되었다.
1969년 7월 삼선개헌 반대 범국민투쟁위원회 발기인으로 참여하였다. 1971년 제8대 국회의원 선거에 군산 · 옥구 지역구 신민당 후보로 내정되었다가 교체되기도 했으며, 1978년에는 제10대 국회의원 선거에서는 무소속으로 군산 · 옥구 지역구에 출마하였다가 낙선하였다.
1981년 제11대 국회의원 선거에서 민주한국당 소속으로 종로 · 중구 지역구에 출마하여, 민주정의당 이종찬과 함께 최고령으로 당선되었다. 이후 민주한국당 자문회의 의장, 민주한국당 고문으로 활동하였다. 1984년 12월 민주한국당 종로지구당위원장을 사퇴하였고, 1985년부터는 민주한국당의 상임고문으로 일선에서 은퇴하였다.
이후 김대중이 창당한 평화민주당 고문 및 당무지도위원회 의장직을 맡았으며, 1991년부터는 민주당의 당무위원으로 활동하였다.
그 밖에 군산중고등학교 동창회 회장, 우진학원 이사, 국토통일원 고문, 제1차 국제침구학술대회 대회장, 운석 장면 박사 기념회 이사, 한국장례문화연구회 회장직 등을 역임하였으며, 2009년 3월 31일 향년 100세로 사망하였다.