1567년(명종 22) 최응룡(崔應龍, 15141580), 김취문(金就文, 15091570) 등이 선산부사 송기충(宋期忠)[1567년 6월 체직]에게 길재의 향사와 유생의 장수를 위한 서원 건립을 요청하면서 추진되었다. 송기충은 유생들의 요구를 감사 류창문(柳昌門)에게 전달하였고, 조정에서 서원 건립을 허가하였다. 최응룡의 「금오서원봉안제문」을 보면 1572년(선조 5) 묘우가 완성되어 길재를 독향(獨享)하였다가 그 후 향내 사림들이 논의하여 김종직(金宗直), 정붕(鄭鵬), 박영(朴英)을 병향(並享)했다.
금오서원은 임진왜란 당시 파괴된 후 1602년(선조 35) 서원 터를 옮겨서 중건하였다. 1602년(선조 35) 선산부사 김용(金涌, 15571620)이 노경임(盧景任, 15691620), 최현(崔晛, 1563~1640), 원장 김석윤(金錫胤) 등과 부의 동쪽 남산(藍山)에 터를 잡고 서원을 지었는데, 이름을 ‘남산서원(藍山書院)’이라고 하였다. 당시 사당을 먼저 건립하고 위패를 봉안하였는데, 1605년(선조 38) 장현광(張顯光)이 금오서원[사당]을 낙동강변으로 이건하였다.
그 후 1606년(선조 39) 조정에서 재사액이 결정되었으나, 실제 현판은 1609년(광해군 1)에 내려졌다. 1619년(광해군 11)에 비로소 서원의 규모가 갖춰졌으며, 장현광이 서원의 재호(齋號)를 정하였다. 선산 사림은 공의로 1642년(인조 20)에 장현광을 추향(追享)하였다.
금오서원이라 사액된 것은 당초 서원을 건립할 당시 금오산 기슭에 위치했기에 그곳의 지명을 따른 것이었다. 그래서 임진왜란 이후 서원을 남산(藍山)으로 옮기고는 이곳의 지명을 따라서 남산서원이라 칭하였다. 그런데 재사액된 명칭은 이전의 것을 그대로 사용했으므로 선산의 사림들은 금오서원과 남산서원이란 명칭을 함께 사용하였다.
금오서원은 건립 이래로 선현 배향과 지방 교육의 일익을 담당하였다. 서원철폐령이 내려졌을 때는 길재를 제향하는 대표적 서원으로서 존속되었다. 그 후 선산지역의 강학과 향론을 대표하는 기관으로서 더욱 활발한 활동을 펼쳤다.
금오서원은 1891년(고종 28) 선산부사 김사철의 주도하에 대대적인 중수가 있었으며, 그의 공을 기리는 ‘부백 김사철 송공비’가 서원 입구에 세워져있다. 선산 사림들은 수계(修稧)하여 1918년, 1930년에도 거듭 중수를 진행하였으며, 1960년에도 중수가 진행되었다. 2010년에는 상현사와 강당, 읍청루를 수보하고, 2012년에 관리사와 해우소를 신축했다. 2015년에 전사청과 교육관을 신축하여 현재의 규모를 갖추었다.
경내의 주요건물로는 묘우인 상현묘(尙賢廟), 전사청(典祀廳), 강당인 정학당(正學堂), 동재 시민재(時敏齋), 서재 일건재(日乾齋), 문루 읍청루(挹淸樓) 등이 있으며, 매년 음력 3월과 9월의 중정(中丁)에 향사를 지내고 있다. 서원 주변에 금오정(金吾亭), 교육관인 청아재(菁莪齋)와 남산실(藍山室), 관리사 2동이 있다.
금오서원은 1985년 10월 15일 경상북도 기념물로 지정되었으며, 2020년 12월 28일 상현묘와 정학당이 보물로 지정되었다.