1660년(현종 1) 25세에 진사시에 합격했고, 1666년 별시 문과에 병과로 급제해 승정원주서로 기용되었다. 그 뒤 지평과 홍문관교리를 역임하고, 1680년 대사간으로 특진되었다. 같은 해 경신대출척 때 허견(許堅)의 추대로 역모에 가담한 복선군(福善君)을 탄핵해 당쟁을 노론 측에 유리하도록 이끌었다.
그 뒤 평안도관찰사에 제수되었고, 1683년 사은부사가 되어 청나라에 다녀왔다. 이어서 다시 대사간을 지내고 두 번째로 평안도관찰사로 내려갔다. 이 해 다시 세력을 잡은 서인이 노론과 소론으로 나뉠 때, 소론인 윤증(尹拯) · 박세채(朴世采) 등과 의기투합해, 정사를 처리하던 유상운은 소론의 당색을 갖게 되었다.
척신 김석주(金錫胄)가 노론의 위세를 등에 업고 정사를 전횡하려 하자, 이에 반대해 여러 번 탄핵하는 소를 올려 기세를 꺾고자 하였다. 1685년 호조판서 · 이조판서 등을 지내고 형조판서가 되었다.
1694년 희빈 장씨(禧嬪張氏)의 오빠 장희재(張希載)가 희빈 장씨에게 보낸 편지 가운데 인현왕후(仁顯王后)에 대한 불온한 글귀가 있다는 이유로 투옥되자, 장희재를 처형하자는 노론의 주장에 대해 반대 의견을 제시하였다.
장희재를 처형하면 그 혐의가 세자의 생모인 희빈 장씨에게까지 미쳐 앞으로의 혼란을 예측할 수 없다는 점을 들어, 남구만(南九萬)과 합세해 장희재를 제주도로 유배시키는 선에서 마무리지었다. 그 사건이 있은 뒤 노론의 지탄을 받아 한 때 삭직되어 성 밖에서 대죄하기도 하였다.
그 뒤 우참찬을 지내고 우의정 · 좌의정을 거쳐, 1696년 영의정에 올랐다. 1698년 노론의 배척을 받아 곤경에 처한 소론의 영수 최석정(崔錫鼎)을 변호하다가 한 때 삭직되었다.
그 뒤 판중추부사로 복직되었다. 1701년 무고의 옥사로 투옥된 장희재의 종 업동(業同)을 죽이지 않고 유배 정도로 수습하고자 했으나, 사건이 더욱 확대되어 장희빈이 연좌되었다.
세자의 생모에게 사약을 내리는 일은 종사의 장래를 위해 바람직하지 않다고 계속 주장하다가 노론의 탄핵을 받아 남구만과 함께 파직되었다. 이듬해 충청도 직산에 부처(付處)되었다가 1704년 석방되어 돌아왔다. 1704년 판중추부사에 다시 복귀하였다.
글을 잘 했을 뿐만 아니라 글씨도 잘 써서 아직도 여러 곳에 금석 문자가 남아 있다. 나주의 죽봉사(竹峰祠)에 제향되었다. 시호는 충간(忠簡)이다.