島根県の東部に位置し、松江市、出雲市に隣接し、南部は広島県に接しています。
市の南部は毛無山(1,062m)を頂点に中国山地に至り、北部は出雲平野に続いていることから、標高差が大きくなっています。市内には、斐伊川本流と支流の赤川・三刀屋川・久野川、その他の支流である阿用川、吉田川などが流れています。
加茂町から大東町、木次町、三刀屋町にかけて、斐伊川と赤川、三刀屋川の合流地点を中心とした平野部が広がっていますが、吉田町、掛合町では中国山地に至る広範な山間部を形成しています。
総面積は553.4平方kmで島根県の総面積の8.3%を占め、その大半が林野です。