1918년 10월 19일 충청북도 청주 출생으로, 서울 보성고등학교를 졸업한 뒤 1940년 보성전문학교 법과를 졸업했다.
1943년 일본 고문사법과, 변호사 시험에 합격해 경성변호사회 변호사시보 수습을 거쳐 1945년 부산지검 검사, 1953년 부산지검 부장검사, 부산지검 마산지청장을 지냈으며, 1956년 서울지검 차장검사, 1959년 청주지검 검사장, 1960년 대전지검 검사장, 1961년 감찰위 감찰위원, 대검검사 등을 지냈다.
1962년 4월부터 1963년 5월까지 서울지검 검사장을 지내고, 이후 변호사로 활동했다. 1972년 국민투표로 유신헌법을 통과시킬 당시 중앙선관위원으로 활동했으며, 이후 1979년 12월 제28대 법무부 장관으로 임명되었다.
법무부 장관 재임 중검찰행정과 교정행정혁신 등에 역점을 두겠다는 목표 아래 전과말소, 형실효 절차 간소화를 추진했으며, 1980년 2월 29일 최규하 대통령이 국무회의에서 백상기 법무부 장관의 제청에 따라 일반복권령을 의결, 긴급조치 위반자 중 윤보선 등 일반복권 대상자 575명, 특별복권자 112명이 복권조치 되기도 했다.
1980년 5월법무부 장관직을 사임한 후 변호사로 활동했으며, 2000년 10월 21일 숙환으로 사망했다. 상훈으로는 국민훈장 모란장, 금관문화훈장 등이 있다.