본관은 청송(靑松). 심문(沈雯)의 아들이다. 홍명주(洪命周)의 외손이다.
1850년(철종 1) 경과증광별시 문과에 을과로 급제한 뒤 관직에 올랐다.
1863년 사헌부장령이 되었으며, 1871년(고종 8) 성균관대사성의 직에 올랐다. 1876년 이조참의가 되었으며, 이듬해 승정원의 좌승지를 지냈다. 1878년 전라좌도암행어사로 제수되어 전라좌도 지방수령들의 시정을 규찰하여 왕에게 보고하기도 하였다.
1879년에는 1876년 강화도조약 이후 개항된 부산항에 인접한 동래부사로 임명되었으며, 1880년 조선과의 통상을 맺기 위하여 내항한 미국함대에 관한 동정을 일본을 통하여 연락받아 조정에 보고하는 일을 맡아 처리하기도 하였다.
1882년 예방승지를 지냈으며, 같은 해 7월 황해도관찰사에 제수되었다. 황해도관찰사로 재임시에는 청나라와 연접한 대청도(大靑島)의 설진문제, 청나라 상인들의 무단 항해문제 등을 조정에 보고하여 처리하였으며, 자연재해에 의하여 피해를 입은 황해도상황을 상세히 조정에 보고하고 그 진휼(賑恤)에 진력하기도 하였다.
1885년 의금부사로 재임하면서 임오군란 당시 청나라로 잡혀간 대원군의 송환문제를 김홍집(金弘集)·심순택(沈舜澤)·심이택(沈履澤)·김병시(金炳始) 등과 상의하여 처리하였다. 1888년 사헌부대사헌이 되었다.