西昌市全境海拔在1500米以上,地形以中山为主,占全市总面积的78.9%,高山、低山分别占1.1%和3.4%;河谷平坝面积占16.4%,是四川省第二大河谷平原。山地分布在安宁河东西两侧:西部牦牛山,是市境内山地的主体,占全市总面积的一半,自北向南纵贯全境,构成安宁河与雅砻江的分水岭,其北段许多山峰海拔超过3500米,向南逐渐降低,整个山体,大部分界于2000-3000米之间;安宁河东侧属螺髻山山脉,其北段主脊线在喜德县境,南段主脊线在西昌与普格的分界线上。这里有数座超过4000米的高峰,其中摆摆顶高达4182米。南北最长约20公里,东西最宽约43公里。
西昌市属于热带高原季风气候区,冬暖夏凉、四季如春,素有小“春城”之称,蕴藏着丰富的气候资源,对养殖业都十分有利,西昌平均温度为17.1℃,年平均气温变幅仅为13℃。积温5934.2℃-6539.3℃,年日照为6206.2℃;年平均日照2432.1小时;年平均蒸发量1945毫米,年平均降雨量1004.3毫米,逆差940.7毫米,逆差率达93.66%。干湿季节分明,一般每年11月-4月为干季,雨量不到全年降水量的10%,5-10月为雨季,降雨量占全年的90%左右,尤以6、7、8三个月最为集中,可占全年降雨量的43.9%。湿度较低,全年平均为60-70%。独特的气候适宜养殖西昌高山黑猪。
西昌市境内河流均属金沙江水系。主河道安宁河、界河雅砻江均为北南走向。山溪河流呈不对称羽状东西展布。市东南有断陷湖邛海。沿安宁河宽谷和湖盆周围地下水丰富。全市境内水资源总量全年为54.01亿立方米(含外来入境水,不含雅砻江过境水量),降水总量28.54亿立方米,径流量13.21亿立方米,地下水量约1亿多立方米。