본래 신라의 서화현(西火縣)이었는데, 757년(경덕왕 16) 상약현(尙藥縣)으로 바꾸어 양주(良州) 소관인 밀성군(密城郡: 지금의 密陽)의 영현으로 하였다. 940년(태조 23) 영산으로 바꾸었고, 1274년(원종 15) 감무를 설치하였다.
1366년(공민왕 15) 밀성군 임내였던 계성현(桂城縣)을 이곳으로 이속하였다가 1390년(공양왕 2) 밀성군으로 환속하였으며, 1394년(태조 3) 다시 이곳으로 내속하였다. 1413년(태종 13) 감무를 현감으로 바꾸었고, 1631년(인조 9) 창녕현을 합쳤다가 6년 뒤에 다시 분리하였다.
1895년(고종 32) 대구부 소관의 영산군이 되었다가 다음해 경상남도로 이관되었으며, 1914년 행정구역 개편 때 창녕군에 편입되어 영산면이 되었다. 영산이라는 지명은 이곳을 흐르는 영산천(靈山川, 또는 郡泉川)의 이름에서 유래된 것이다.
조선시대에 이곳은 낙동강과 남강이 합류하는 평야 지역에 발달하였다. 교통이 편리하여 북쪽으로 창녕, 남쪽으로 매포(買浦)를 통하여 칠원, 동쪽으로 청도ㆍ밀양, 서쪽으로 삼가 등지를 잇는 도로망이 발달하였다.
여통(餘通)과 소산(所山)에는 봉수가 있어 거제도에서 시작된 봉수망이 이곳을 통하여 북쪽으로 전달되었으며, 계성산(桂城山)에는 옛 산성이 있었고 일문역(一門驛)과 온정역(溫井驛)이 있었다. 당시에 온천이 있었다는 기록은 이 온정역을 가리키는 것으로 본다.