山形県のほぼ中央部に位置し、南は立谷川を境に山形市、西は最上川を境に寒河江市と西村山郡の河北町、東村山郡の中山町、北は乱川を境に東根市と隣接しており、東西が長い菱形をしています。
市域は奥羽山脈を源にする立谷川・乱川等の扇状地で、西部は山形盆地に属する平野部。東部は、奥羽山脈に含まれる山岳地帯になっています。市の南西部を市域に沿って最上川が流れ、中央部を流れる倉津川と、北部を流れる乱川が最上川に合流しています。
市内北部で国道13号と48号が交わり、山形空港まで車で10分という、交通の便に恵まれた位置にあります。