호는 백민(白民). 전라북도(현, 전북특별자치도) 고창 출생. 1943년 경성대 법문학부를 졸업하고, 같은 해 고등문관시험에 합격했다. 1943년 일본 내무성 관리국 속, 1945년 북해도청(北海島廳) 농무과장을 지냈다.
해방 후, 1948년 상공부 전정과장(電政課長), 1952년 상공부 광무국장 등을 역임한 뒤 1954년 변호사로 등록하였다. 이듬해 주택영단 이사, 1958년 호남비료 전무이사, 1960년에는 상공부 사무차관, 1961년 대한교육보험 부사장, 1962년에는 울산비료 전무이사, 1964년 한전부사장 등을 거쳤다. 이후 정계에 입문해 1971년 제8대 국회의원 선거에 신민당 소속으로 고창에서 출마해 당선했고, 1973년 제9대 국회의원 선거에서 신민당 소속으로 재선했다.
1979년 보건사회부장관을 지내다가 1980년 국가보위입법회의 입법의원에 임명되었다. 이어 1981년 제11대 국회의원 선거에 민주정의당 소속으로 정읍 · 고창에 출마해 당선했으며, 1982년 민주정의당 정책위의장, 1983년 민주정의당 대표위원을 맡았다. 1983년부터 1985년까지 국무총리를 역임하고, 그 뒤 민주정의당 상임고문을 맡았다. 이해 제12대 국회의원 선거에 민주정의당 전국구의원으로 당선했으며, 1988년에 다시 민주정의당 고문을 맡았다. 저서로 『백민논집(白民論集)』이 있다.