本市は、富山県の南西部に位置し、北部は砺波市と小矢部市、東部は富山市、西部は石川県金沢市と白山市、南部は1,000メートルから1,800メートル級の山岳を経て岐阜県飛騨市や白川村と隣接しています。
東西約26キロメートル、南北約39キロメートルで、そのうち約8割が白山国立公園等を含む森林であるほか、岐阜県境に連なる山々に源を発して庄川や小矢部川の急流河川が北流するなど、豊かな自然に恵まれています。また、市北部の平野部では、水田地帯の中に美しい「散居村」の風景が広がり、独特の集落景観を形成しています。