1915년 7월 28일 전남 광주 출생으로, 1940년 보성전문학교 법학과를 졸업했다. 1945년 보성전문학교 교사였던 장덕수의 추천으로 한국민주당에 입당했으나 얼마지나지 않아 탈당했다. 국민회 전남도 지부 청년부장과 민족청년단 전남도 부단장으로 활동했다.
초대 사회부 장관 전진한의 추천으로 사회부 감사과장에 임명되었으며, 1949년부터 내무부 인사과장으로 재직했다.
광주상업중고등학교 교장으로 재임하다가, 1954년 제3대 국회의원 선거에 무소속으로 출마해 광주에서 당선되었으며, 민주당 구파 소속으로 활동했다.
1964년 한일협정 반대운동에 참여했으며, 1965년 8월 13일 한일협정 비준에 항의하는 뜻으로 민중당 탈당계를 제출해 윤보선, 김도연, 서민호, 정일형, 김재광 등 윤보선계열과 함께 국회의원직이 자동 상실되었다.
1967년 제7대 국회의원 선거에 신민당 소속으로 출마해 광주서 지역구에서 당선되었으며, 1970년 6월부터 1971년 6월까지 국회 부의장직을 역임했다. 1971년 제8대 국회의원 선거에 출마해 광주갑 지역구에서 당선되어 3·4·5·6·7·8대에 걸쳐 6선 국회의원이 되었다.
1973년 5월 2일 정계은퇴 성명서를 발표하고 정계를 떠났으며, 1987년 4월 자랑스런 고대인상을 수상했다. 2000년 8월 17일 사망했다.