面積  299.69km2
総人口 51,420人(推計人口、2017年5月1日)
熊本県の北部に位置する市である。山鹿温泉や山鹿灯籠まつりで知られる。
熊本県の北部の内陸部、熊本市から北側へ約30km、福岡市から南南東へ約90kmの場所に位置する。市の北部から北東部にかけて福岡県と接しており、市の東端部ではわずかに大分県と接している。中央部よりやや南寄りにある中心市街地から南部(旧菊鹿町)にかけては盆地となっている。市北部から北東部の県境付近は九州山地の一角を占めており、北部(旧鹿北町)の福岡県との県境には姫御前岳(596m)、北東部(旧菊鹿町)の福岡県・大分県との県境付近には国見山(1018m)、八方ヶ岳(1052m)といった山々がそびえる。河川としては、菊池川が中心部を流れる。