본관은 능성(綾城, 지금의 전라남도 화순), 자는 사초(士初)이다. 5대조가 인조반정의 일등공신 구굉(具宏)이다. 아버지는 경기수군절도사를 지낸 구성필(具聖弼)인데, 구성필이 큰아버지 구수정(具守禎)의 양자가 되면서, 구선복은 친조부 구상정(具尙禎)의 증손자인 구명겸과 7촌 숙질 사이이자, 혈연으로는 5촌 숙질이 된다. 그런데 구명겸의 차자 구석화(具錫和)가 구선복의 계자(系子)인 구이겸의 양자가 되면서 구선복과 구명겸은 부자 사이로 간주되기도 한다. 구선복 옥사의 중심에 있던 상계군(常溪君) 이담(李湛)의 외할아버지가 송낙휴(宋樂休)인데, 구명겸과 형제자매 사이인 이담의 외조모는 구선복의 재종질녀이면서, 혈연으로는 종질녀가 된다.
1738년(영조 14) 생원 진사시에 입격하여 생원이 되었다. 1748년(영조 24) 황해도 수군절도사, 1750년에 충청도 병마절도사가 되었다. 이후 금위대장과 훈련대장, 총융사를 지냈다. 1776년(정조 즉위) 병조판서와 형조판서를 역임하였다.
1779년(정조 3) 정조의 후궁 원빈홍씨(元嬪洪氏)가 소생 없이 갑자기 죽자, 홍국영(洪國榮)은 정조의 이복동생인 은언군(恩彦君) 이인(李䄄)의 아들 이담(李湛)을 죽은 누이 원빈의 양자로 삼았다. 이담은 완풍군에 봉해졌다가 상계군으로 고쳐 책봉되었다.
1786년(정조 10) 5월에 정조의 아들 문효세자가 죽고, 9월에 의빈성씨(宜嬪成氏)가 사망하자 왕대비 정순왕후(貞純王后)가 모자의 죽음에 의심스런 정황이 있다고 보았다. 곧이어 11월에 상계군이 사망하면서 구선복이 이 역모사건의 주모자로 지목되었다. 상계군의 외할아버지인 송낙휴는 이 죽음에 김상철(金尙喆), 구선복이 관련 있다고 고변하였다.
구선복은 송낙휴의 처재종숙부이며, 역모에 가담한 김영진(金寧鎭)은 김상철의 서자이자 구선복의 사위였다. 정조는 김상철 · 김우진(金宇鎭) 부자가 모의를 알고도 고하지 않았다고 하여 구선복을 처형하고, 김우진 · 김영진을 유배 보냈다. 구선복이 효시될 때 집안사람들인 구선형(具善亨), 구명겸(具明謙) · 구의겸(具宜謙) · 구득겸(具得謙), 구누랑이(具屢郞伊) · 구정화(具鼎和) 등이 연루되거나 연좌의 죄를 입었다.
구선복은 영조대 후반 이래로 홍인한(洪麟漢) · 정후겸(鄭厚謙) · 김구주(金龜柱)] 등 왕실의 척신과 밀접한 관계를 유지하면서 막강한 군사력을 행사하였다. 정조는 즉위 뒤에 정치적 기반 마련을 위해 자신에 적대적인 세력을 제거하는 토역(討逆) 정국을 이끌면서, 구선복 옥사를 단행하였다. 정조는 이를 통해 군권을 장악하고 왕권의 안정 기반을 구축하였다.