경상북도 구미시의 서부 지역에 위치한 읍이다. 옛 선산군의 지역으로 중심에 있으며, 인근에 선산 나들목이 있다. 구미시의 동북부에 위치하여 서북쪽으로는 무을면과 옥성면, 서쪽으로는 김천시 감문면, 남쪽으로는 고아읍, 동쪽으로는 낙동강을 접하고 있다.
선산은 신라시대에는 일선군(一善郡), 일선주(一善州), 숭선군(崇善郡) 등으로 불리었으며, 조선 태종때 선산부(善山府)로 개칭되었으며, 고종 23년 선산군으로 변경되었다. “선산”이란 이름은 조선시대부터 지금까지 사용되고 있다.
경상북도의 중서부 지방에 위치하여 남쪽에는 금오산(金烏山) 영봉이 솟아 있고, 낙동강(洛東江)이 북에서 남으로 선산의 중심부를 가로질러 유유히 흐르고 감천(甘川)이 서남에서 흘러 합류하여 감천과 낙동강의 줄기 따라 넓고 기름진 옥토가 평야를 이루었다.
민심은 소박하며 학문을 숭상하여 많은 인물이 배출되니, 옛부터 이르기를 조선 인재의 절반은 영남에서 나고 영남의 인재의 반은 선산에서 난다고 하였다.