竹山鎮位於
南投縣西南端,是阿里山北稜延伸而成,因此呈南高北低。面積共247.433平方公里,其中83%為山嶺,東西長約18.5公里,南北長約23公里,形狀猶如一只長統馬靴。
全鎮最高點是2288公尺的鹿屈山,最低位置是濁水溪香員腳沙洲,海拔高度為106公尺,落差達2172公尺。
鎮內最長的河川是清水溪的支流加走寮溪,全長22.5公里。
竹山鎮面積約與台中市相當。除了與縣內的
鹿谷、
集集、
名間等三鄉鎮交界外,西側的下坪里於
南投縣與
彰化、
雲林三縣邊界,最南端的大鞍里則擁有南投縣與雲林、
嘉義等三縣市交界點。