본관은 진주(晉州). 자는 중수(重綏), 호는 사은(四隱). 익산 출신. 대사간 소세량(蘇世良)의 증손으로, 아버지는 현감 소민선(蘇敏善)이다. 서윤(庶尹) 소응선(蘇膺善)에게 입양되었다. 김은휘(金殷輝)의 문인이다.
1582년(선조 15) 진사가 된 뒤 성균관에 들어갔다. 기회가 있을 때마다 성혼(成渾)으로부터 출사할 것을 여러 번 권유받았으나 학문이 미진함을 이유로 사양하였다.
1592년 임진왜란이 일어나자 향리의 사람들과 함께 의병을 일으켜 용화산(龍華山)에 작은 성을 쌓아 향토 방위에 참여했으며, 난 후 국정 전반에 관한 시무책(時務策)을 조정에 올려 가납(嘉納)되기도 하였다.
1601년 학행으로 천거되어 희릉참봉(禧陵參奉)에 제수되었으나 사직하고 고향에 돌아와 수천 권의 서책 속에 묻혀 후진 교육에 진력하였다. 1605년 김장생(金長生)이 익산군수로 있을 때 매번 그의 방문을 받아 군정자문(郡政諮問)에 응하였다.
이와 아울러 자신이 소장하고 있던 경전(經典)·사서(史書) 등 귀중한 전적(典籍)들을 나라에 기증하여 궁중의 비서각(祕書閣)에 비치하도록 하기도 했다. 그 무렵 향리 일대가 한해로 매년 흉년을 겪게 되자 40여 리에 달하는 수로 건설을 건의, 농민 생활 안정에 크게 기여하였다.
경학(經學)뿐만 아니라, 천문·지리·의복(醫卜)·병법(兵法)·관방(關防) 등에 이르기까지 널리 통했으며, 성혼에게 종유(從遊: 좇아 사귐)하는 한편, 조헌(趙憲)·정경세(鄭經世)·한백겸(韓百謙)·황신(黃愼) 등과의 친교가 두터웠다.
광해군 때 조카 소명국(蘇鳴國)이 대북·소북간의 당쟁에 관여, 몰락하자 이에 연좌되어 대명(待命) 중에 질병을 얻어 죽었다.