본관은 진주(晉州). 자는 위사(渭師). 우의정 강사상(姜士尙)의 현손으로, 할아버지는 강홍중(姜弘重)이고, 아버지는 목사 강욱(姜頊)이며, 어머니는 이창원(李昌源)의 딸이다.
일찍이 문명을 떨쳤으며, 생원 · 진사시에 모두 합격하였고, 1662년(현종 3) 증광문과에 병과로 급제하여 승문원부정자(承文院副正字)가 되었다. 1668년 강원도도사가 되었으나, 기민구제를 게을리한다는 대간의 계(啓)로 인하여 파직되었다.
1669년 문신정시(文臣庭試)에 장원하여 현종에게서 호피(虎皮: 호랑이 가죽)가 하사되었으며, 1675년 남인이 정권을 잡자 사간원정언에 복직, 홍문관부수찬 · 수찬을 지냈다. 이듬해 충청도암행어사 · 이조좌랑 · 교리 · 사인(舍人) · 응교(應校) · 사간을 역임하였다.
문무의 재능을 인정받아 묘당(廟堂)의 추천으로 경기도수군절도사에 제수되었으나 1680년 경신환국으로 남인이 실각하고 정권이 서인에게 넘어가자, 경기수사로서 민폐가 많고 근무가 태만하다는 서인들의 탄핵을 받고 중도부처(中途付處)되었다.
1689년 원자문제로 일어난 기사환국으로 서인이 실각하고 남인이 다시 정권을 장악하자 풀려나와 동부승지가 되었다. 이어, 1691년 대사간이 되어 사은부사(謝恩副使)로 청나라에 다녀온 뒤 노독(路毒)으로 죽었다. 진선군(晉善君)에 습봉(襲封: 봉군을 이어 받음)되었다.