본관은 진천(鎭川). 자는 한경(漢卿). 전주에서 살았다. 송영진(宋英震)의 증손으로, 할아버지는 송흥시(宋興詩)이고, 아버지는 송유전(宋有銓)이며, 어머니는 지중추부사(知中樞府事) 이정(李瀞)의 딸이다.
1657년(효종 8) 식년 문과에 병과로 급제, 1658년 세자시강원설서(世子侍講院說書)가 되었으며, 그 뒤 춘추관기사관(春秋館記事官)과 병조좌랑 등을 역임하였다. 1659년(현종 즉위년)에는 예문관봉교(藝文館奉敎), 1663년 사간원정언(司諫院正言)을 지냈다.
1667년 사헌부장령(司憲府掌令), 1668년 사간원헌납(司諫院獻納), 1672년 세자시강원보덕(世子侍講院輔德), 1674년 사간원사간을 지냈다. 같은 해 가을 숙종 즉위 후 서장관(書狀官)으로 청나라를 다녀온 바 있다. 1675년(숙종 1) 승지로 있을 때 파직당한 김만중(金萬重)을 비호하다가 파직당하였다.
1680년 다시 승지에 임명되었으며, 1686년 대사간이 되었다. 1697년 도승지, 1702년 판윤, 1704년 공조판서를 역임하였으며, 1706년 좌참찬으로 있다가 죽었다. 사관이 평하기를 “내외직을 두루 거치는 동안 뚜렷이 드러난 바는 없으나, 성품이 본시 고요하고, 벼슬에 임해서는 마음을 작게 가지니, 사람들이 많이 칭송하였다.”고 하였다.