본관은 단양(丹陽). 자는 현규(玄圭). 고려 시중(侍中) 우현보(禹玄寶)의 후손으로, 아버지는 우수로(禹秀老)이다.
어릴 때부터 용맹이 뛰어나 1443년(세종 25) 내금위(內禁衛)에 속하였다가 이듬해 무과에 급제하고, 1447년 무과중시에 급제하여 축두포만호(丑頭浦萬戶)가 되었다. 1453년(단종 1) 진무(鎭撫)를 거쳐 경원판관·군기판관·경성판관·훈련원사 등을 역임하였다.
1460년(세조 6) 안변부사로 있으면서 신숙주(申叔舟)와 함께 모련위(毛憐衛)의 야인(野人) 토벌에 공을 세웠다. 1463년 당상관으로 의주목사에 제수되었으나, 어머니의 상을 당하여 사직하였다. 1466년 기복(起復: 喪을 끝마치고 다시 벼슬 길에 오름)되어 의주목사가 되었으나, 적정(賊情) 정탐을 이유로 압록강을 건너 대창산(大昌山) 밑에서 사냥하다가 야인의 습격을 받아 패배한 일로 파직, 투옥되었다.
1467년 이시애(李施愛)의 난이 일어나자 옥에서 나와 입공속죄(立功贖罪: 죄값을 만회하기 위해 공을 세움)의 기회를 얻고, 화차장(火車將)으로 임명되어 평정에 공을 세웠다. 그 공으로 적개공신(敵愾功臣) 3등에 책록되고 단성군(丹城君)에 봉하여졌으며 겸오위장(兼五衛將)이 되었다.
그 뒤 강순(康純)·남이(南怡) 등이 건주위(建州衛)를 정벌할 때 종군하여 공을 세워 군공(軍功) 3등에 책록되었고, 이어 경상좌도수군절도사가 되었다.
1470년 상호군 겸 도총관으로서 하정사(賀正使)가 되어 명나라에 다녀오고, 이듬해는 성종의 즉위에 대한 공으로 좌리공신(佐理功臣) 4등에 책록되었으며 다시 단성군에 봉하여졌다. 우찬성에 추증되었으며, 시호는 양장(襄莊)이다.