본관은 개주(開州). 아들은 고식(高湜)이다.
그는 어려서 고아가 되었으나 공부에 힘써 글을 잘 지었다. 문종 때 문과에 급제한 뒤, 1097년(숙종 2) 우찬선대부(右贊善大夫), 1099년 이부낭중추밀원우승선(吏部郎中樞密院右承宣)을 역임하였다.
그 뒤 1101년 어사중승(御史中丞)으로 동북면병마사(東北面兵馬使)가 되고 이어 형부시랑우간의대부(刑部侍郎右諫議大夫)에 올랐으며, 논의함이 강직하여 굽힘이 없었다.
1105년 예종이 즉위하여 비서감직문하성(秘書監直門下省)이 되고, 이듬해 경상도에 홍수가 나자 좌산기상시(左散騎常侍)로서 안무사(按撫使)로 파견되어 공전세(公田稅)를 감면시켜주는 등 백성의 구제에 힘썼다.
1108년(예종 3) 상서로서 서북면병마사가 되고 이듬해 동지추밀원사를 거쳐 이부상서지추밀원사(吏部尙書知樞密院事)에 올랐다. 1113년 검교사공참지정사(檢校司空參知政事)가 되었다.
이 때 대신들이 새로운 법을 만들어 예종에게 올렸으나, 이미 성헌(成憲)이 갖추어져 있으니 고치지 말고 제대로 지켜 잃지 않음이 옳다고 하여 반대하였다. 이듬해 참지정사로 치사하였다. 청렴하고 검소하여 집에 남은 재물이 없었다고 한다. 시호는 양경(良敬)이다.