본관은 남양(南陽). 자는 운지(雲之). 동지밀직(同知密直) 홍예(洪裔)의 아들이다.
남경유수판관 · 광주통판(廣州通判) · 충청경상전라안찰사를 역임하며 치적을 쌓았다. 호부시랑을 거쳐 1271년(원종 12) 우부승선에 임명되자 왕에게 친히 서정(庶政)을 보살필 것을 건의하였다. 그 뒤 좌승선 · 승선 등으로 승진하였다. 1278년(충렬왕 4)에는 지밀직사사(知密直司事)로 왕을 시종해 원나라에 들어갔다. 이듬해 판밀직사사에 올랐다.
그 해에 일본정벌을 위한 몽고의 계획이 진행되자 전라도도지휘사로 파견되어 전함의 수리 · 건조를 담당하였다. 이후 지첨의부사(知僉議府事) · 도첨의찬성사(都僉議贊成事) · 첨의찬성사를 거쳐, 1294년 첨의중찬(僉議中贊)에 이르렀다.
이듬해 지도첨의사사(知都僉議司事)로 자리를 옮겼다. 1296년 다시 우중찬(右中贊)에 임명되자 백성들을 위한 대책으로 ‘편민십팔사(便民十八事)’를 올렸다. 이것은 공부(貢賦)의 균정(均定)과 정액 이외의 공부수납 억제, 의창(義倉) 등을 통한 백성의 구휼, 수령의 민폐방지 등을 주요 내용으로 한 것이다.
1298년 충선왕이 잠시 즉위한 동안 좌복야참지광정원사(左僕射參知光政院事)가 되었다가 곧 첨의중찬에 임명되었다. 그 해 충렬왕이 복위하자 벽상삼한진충동덕좌리공신경흥군개국후(壁上三韓盡忠同德佐理功臣慶興君開國侯)에 봉해졌다.
이 무렵 충렬왕 · 충선왕 부자 사이가 극도로 악화됨에 따라 갖가지 정치적 문제가 야기되었다. 이 때 1303년 왕 부자를 이간시킨 오기(吳祈) · 석천보(石天輔)를 붙들어 원나라에 보내는 등 부자의 정의를 회복시키는 데 진력하였다.
그 해 도첨의좌중찬에 임명되었으나 1305년 참소로 파직되었다. 그 뒤 자의도평의사사(咨議都評議司事)로서 왕을 수행해 원나라에 들어갔다. 그리하여 왕유소(王惟紹) · 송린(宋璘) 등의 이간책동을 자세히 진술하고, 아울러 두 왕을 받들고 귀국하려 하였다. 그러나 뜻을 이루지 못한 채 이듬해 원나라에서 죽었다.
추성동덕익대공신 벽상삼한삼중대광(推誠同德翊戴功臣壁上三韓三重大匡)에 추증되고, 충선왕 묘정에 배향되었다. 시호는 충정(忠正)이다.