福岡県中央部の東端に位置し、大分県日田市と隣接しています。
東から北そして西には標高500mから900mの急峻な山地が迫り、その谷間を大肥川が中央部を南流し、大行司で合流する宝珠山川は、その源流の渓谷の清流を集めています。
北端にある小石原盆地は標高、460〜480mで、湖底盆地と言われ、盆地内の5つの小河川を集めて小石原川が西流し、江川ダムの水源となっています。
これらの川はいずれも筑後川に集められ、遠く有明海に注いでいます。
小石原盆地を除けば、農耕地はこれら河川の支流沿いに、断続する小盆地や狭少な平坦部に限られています。