本町は北緯33度45分、東経133度35分、高知市北方20km余、四国山脈の中央部に位置し、東流して徳島県に注ぐ吉野川両岸の僅少な沖積地の外、ほとんどが険峻な山貌を示す壮年期の山々で起伏し、峡谷となって多くの支流を生み吉野川に合流し複雑な地形をなしています。
町土の89.1%は、急傾斜の山林で、北は愛媛県境より南西の傾斜になり、南は、南国市、土佐山田町に連なり北西の傾斜、西は土佐町、東は大豊町と境し、集落・耕地は標高250m〜740mの間に点在しています。
本町の北部一帯は高峻な石鎚山地に属し、南部には比較的なだらかな剣山地が東西に走り、その中間部を吉野川が東流しその沿岸には所々狭い河岸平地をつくっています。