경기도 용인 출신. 1915년 만주로가 초명 오성묵을 버리고 ‘조선의 광복을 되찾겠다’는 뜻을 넣어 오광선(吳光鮮)으로 이름을 바꿨다. 남만주 신흥무관학교(新興武官學校)를 졸업하고 서로군정서(西路軍政署) 제1대대 중대장을 비롯하여 1920년 신흥무관학교 교관, 지냈다.
서로군정서의 경비대장으로 독립군을 인솔하고 노령으로 이동하였다가 적군(赤軍)에 붙잡혀 6개월간 복역하던 중 시베리아형무소에서 탈출하였다.
1930년에 결성된 한국독립당(韓國獨立黨)의 의용군 중대장으로 활약하였다. 1933년 지청천(池靑天)과 함께 수분하 대전자에서 일본군을 대파하였다. 1934년 김구(金九)가 중국군측과 교섭하여 뤄양군관학교[洛陽軍官學校]에 한국인훈련생 특별반을 설치하자, 지청천·이범석(李範奭) 등과 더불어 교관으로 독립군간부를 양성하였다.
1936년 북경에 파견되어 비밀공작대를 조직하고 일본 관동군 참모장이었던 도이하라 겐지[土肥原 賢仁] 암살을 준비하였다. 1937년 1월 베이징[北京]에서 일제에 피체되어 신의주형무소에서 옥고를 치르고 1940년 11월 출옥하였다. 출옥 후 다시 중국으로 가 무장독립운동을 계속하였다. 1945년 광복 후 귀국하여 광복군 국내지대장(國內支隊長)을 지냈고, 한국군 육군대령으로 임관되어 준장으로 예편하였다.
1962년 건국훈장 독립장이 수여되었다.