본관은 진주(晋州). 자는 자유(子由), 호는 면와(眠窩). 전라북도(현, 전북특별자치도) 익산 출신. 첨사 소세공(蘇世恭)의 증손으로, 할아버지는 진사 소건(蘇建)이고, 아버지는 찰방 소만선(蘇萬善)이다.
1617년(광해군 9) 사마시에 합격하여 생원이 되었으나 광해군 때는 벼슬하지 않았다. 1623년(인조 1) 인조반정으로 서인(西人)이 집권하자 1635년 증광 문과에 병과로 급제, 성균관에 보직된 뒤 1646년 사헌부지평이 되었으나 곧 면직되었다. 이듬해 평안도 은산부사를 지내고 정주목사로 선정을 베풀었다. 이어 암행어사로서 민정과 수령의 치적을 상세히 조사하여 보고하였다.
1650년(효종 1) 의주부윤이 되어 호란 후 피폐하여진 민생을 구제하고 국방과 영선사업에 힘썼다. 뒤에 경주부윤을 거쳐 1659년 황해도관찰사가 되어 수령전최(守令殿最: 근무 성적의 평가)에 공정을 기하였다. 익산 지방의 대표적인 명문출신으로 성리학적 실천윤리를 몸소 실천하였으며, 화암서원(花巖書院)에 제향되었다.