본관은 광산(光山). 자는 도상(道常), 호는 기오당(寄傲堂). 김표(金彪)의 증손으로, 할아버지는 김위남(金偉男)이고, 아버지는 김헌(金憲)이며, 어머니는 남탁(南晫)의 딸이다.
1650년(효종 1) 증광 문과에 병과로 급제, 검열이 되었다.
이어 1657년 정언(正言)이 되었으며, 1661년 헌납(獻納)·사간을 역임하였다. 이듬해 집의(執義)·홍문관교리(弘文館校理), 1669년 좌부승지, 이듬해 도승지를 지냈다. 그 뒤 1672년에 경기도관찰사가 되었고, 1674년 한성부판윤, 청나라 사신인 원접사(遠接使)가 되었다.
이어서 1687년(숙종 13)에는 개성유수, 1694년 형조판서를 거쳐 기로소에 들어갔다. 효성이 지극하여 계모를 정성껏 모셨고 예서에 능하여 숙종 때 보책(寶冊)을 자주 썼다. 저서로는 『옥산유고(玉山遺稿)』가 있다. 대구 용연사(龍淵寺)의 송파대사각민탑비(松坡大師覺敏塔碑)는 김우형의 글씨이다. 시호는 정혜(貞惠)이다.