궁마(弓馬)에 뛰어났고, 병법에도 능통했다 한다. 1427년(세종 9) 무과에 급제, 사복시직장(司僕寺直長)·군기시부정(軍器寺副正) 등을 역임하였다.
1449년 거제현령으로서 읍(邑)을 옮기고 성을 새로 쌓아 백성을 편안하게 하는 한편, 국방을 튼튼히 한 공으로 이듬 해 문종이 즉위하자 첨지중추원사(僉知中樞院事)에 제수되었다.
그 뒤 공조참의·경주부윤 등을 거쳐 1453년(단종 1) 경상우도처치사(慶尙右道處置使)가 되고, 1455년 세조가 즉위하자 좌익원종공신(佐翼原從功臣)에 책록되었다.
1457년(세조 3) 경상우도병마절도사·경상좌도병마절제사를 거치면서, 왜인의 변란 대비책으로 연변제읍(沿邊諸邑)의 제색군인(諸色軍人)을 동·서 양계(東西兩界)처럼 각기 본 읍에 소속해 수비하게 하고, 영진군(營鎭軍)은 내지(內地) 군사로 소속시켜 불의의 일에 임하도록 하였다.
아울러 서로 긴밀하게 협조하고 야인(野人)의 침입도 대비하기 위해 지형적으로 유리한 곳에 대성(大城)을 쌓아 후환을 미리 제거하자고 건의하였다.
1459년 첨지중추원사 겸 경상좌도도절제사를 역임, 이듬 해 동지중추원사가 되었으나 연로한 아버지의 봉양을 위해 사직을 요청하자, 세조가 가상히 여겨 경상우도처치사에 임명하였다.
성품이 강직하고 청렴하며 기사(騎射)에 능하고 또한 이치(吏治)에 수완이 있었다 한다. 일찍이 최윤덕(崔潤德)의 북정(北征) 때 편비(褊裨)로 이름을 떨쳐 비장군(飛將軍)이라 불렸다. 그리고 20년 동안이나 북방을 수비해 산천의 형세를 환히 알아 공수(攻守)에 실수가 없었다. 시호는 정무(靖武)이다.