경상북도 상주 출신. 어릴 때 고향에서 한문을 수학하다가 1899년에 상경하여 당시 세도가인 이용태(李容泰)의 문객으로 있으면서 말죽거리와 남대문 밖에서 훈장도 하였다. 1905년 을사조약이 체결되고 이어 군대 해산, 헤이그특사사건, 고종 퇴위 등의 국난이 겹치게 될 무렵 상동교회의 목사 전덕기(全德基)의 설교와 인격에 감화되어 기독교에 입교하였다.
전덕기의 지도로 1907년에 조직된 신민회(新民會)에 가입하여 김구(金九) · 이갑(李甲) · 양기탁(梁起鐸) · 이동휘(李東輝) 등과 항일운동에 가담하는 한편, 1905년 이후 상동교회에 설치된 상동청년학원과 공옥학교(攻玉學校)에서 조선역사 · 성경 · 한문 등을 가르쳤다.
1911년에 상동교회 전도사로 임명되면서 전덕기의 목회와 민족운동에 적극적으로 가담하였고, 1912년에는 피어선성경학교에 입학하여 목사직 훈련을 받았다. 1913년 감리교연회에서 전도사 임명을 받고 상동교회 소속 전도사로서 병중에 있던 전덕기를 도와 목회에 전념하였다.
1914년 2월협성신학교(協成神學校)에 입학하였고, 그 해 3월 전덕기가 순직하게 되자 상동청년학원도 문을 닫음으로써 당시 황성기독교청년회연맹(YMCA)의 총무였던 신흥우(申興雨)의 주선으로 황성기독교청년회연맹에서 한문과 역사를 가르쳤다.
1915년 신흥우가 배재학교 교장으로 부임하자 1916년부터 배재학교에서 성경과 한문을 가르치게 되었으며, 정동교회 전도사직도 겸직했다. 그때부터 배재학교 학생들로 전도대(傳道隊)를 조직하여 전국순회전도를 하면서 민족계몽사업에 힘썼다.
1919년 3 · 1운동 당시에는 감리교출신 민족대표 및 목사 손정도(孫貞道) · 이필주(李弼柱) · 현순 들과 함께 이 운동계획에 참여하여 인쇄된 <독립선언서>를 서울시내 각 외국영사관에 전달하는 일과 배재학교 학생들을 시위에 동원하는 일들을 훌륭히 해냈다. 그로 인해 일본경찰에 체포되어 서울 서대문형무소에 구금되면서 8개월의 실형언도를 받고 복역중 심한 고문으로 신장병을 얻어 9월에 병보석으로 석방되었다.
1920년 인천 내리교회에 부임, 목회활동을 하였고 그 해 10월 목사 안수를 받았다. 1921년 다시 배재학교교목으로 부임하여 1935년에 은퇴할 때까지 학생들에게 신앙과 민족의식을 고취시켰다. 1940년 함경북도에서 교회분쟁이 일어나자 감독의 특별파송으로 청진 · 어항 · 경성 · 주을 · 생기령 등의 교회를 맡아서 목회하였다.
광복 후에는 공산당의 압박을 피하여 1947년 6월 월남하여 한때 분쟁중인 강릉지역에 파송되어 이를 수습하였고, 그 뒤 서울 궁정동교회 목사로 시무하다가 1951년 부산 피난지에서 노령으로 은퇴한 뒤 1960년 9월에 별세하였다. 장례는 배재고등학교장으로 거행되었다.