중찬(中贊)으로 치사(致仕)한 송송례(宋松禮)의 아들이다.
1270년(원종 11) 송송례가 임유무(林惟茂)를 제거할 때 위사장(衛士長)으로 활약하였다. 또 같은 해 세자 왕심(王諶: 충렬왕)이 원나라에 인질이 되어 들어갈 때 상서좌승(尙書左丞)으로 활약하였다.
1273년 1월에는 대장군이 되어 원나라의 마강(馬絳)과 함께 합포(合浦)로 진출한 삼별초군을 맞아 싸웠다. 같은 해 3월에는 마강을 따라 원나라 황후의 청을 받아 낙산사(洛山寺)의 관음여의주(觀音如意珠)를 가지고 원나라로 갔다. 좌우서윤(左右庶尹)을 거쳐 1279년(충렬왕 5)에 지신사(知申事)가 되었다.
당시의 고관과 전신들은 사패(賜牌)를 받아 기현(畿縣)의 토지를 점유했는데 그 역시 많은 토지를 소유하고 있었다. 1282년 지밀직사사(知密直司事)로서 경상도에 내려가 전함을 수리하고, 1285년에는 동지밀직사사로서 경상도 조선도지휘사(造船都指揮使)로서 공역(功役)을 크게 일으켜 민에 대한 억압과 착취가 극심하였다.
1290년 합단(哈丹)의 침입으로 왕이 강화도로 피난할 때 첨의찬성(僉議贊成)으로서 개경유수에 임명되었으나 강화도로 도망쳤다. 이듬해 원나라의 선무장군 진변만호(宣武將軍鎭邊萬戶)가 되고 금패(金牌)를 받았다. 이 때 여진과 쌀을 밀무역한 죄목으로 동계안집사(東界安集使)에 의해 파면되었다.
1298년에 첨의시랑찬성사가 되고, 판감찰사사가 되었으며 하정사(賀正使)로 원나라에 갔다. 이듬해 안향(安珦)과 함께 감수국사가 되고 지도첨의사사(知都僉議司事)가 된 뒤 물러날 것을 청하였다.
1300년에 우중찬이 되고 공신에 봉해졌으며 궤장(几杖)을 하사받았다. 1303년에는 첨의좌중찬이 되고 낙랑공(樂浪公)에 봉해졌다. 1318년 중찬으로 치사하였다.
재상의 신분으로 충선왕과 충숙왕의 부자관계를 이간시키고, 심지어 충선왕비를 서흥후(瑞興侯) 왕전(王琠)에게 개가시키려는 등 갖은 모략을 일삼았으나 충선왕의 지위가 원나라 왕실에서 확고해지자 유배되었다. 시호는 양의(良毅)이다.