位于县城东北部,东与漫湾镇的嘎止、白莺山、酒房、慢光4个农村办事处山水相连,东南与忙怀彝族布朗族乡的忙贵、温速2个村委会为邻;南与晓街乡的月牙地、快乐、新联3个村委会凭罗扎河分界,西南与爱华镇的永胜办事处接壤,西邻凤庆县的腰街彝族乡,北和大理白族自治州的南涧彝族自治县新民乡隔澜沧江相望。以镇政府驻地茂兰街为中心,东至丙令街28.5千米,至景云桥和温贤渡各40多千米,南至晓街30千米,西南距县城25千米,北至哨街26千米,至神洲渡36千米,西北至凤庆县的腰街30千米,全镇总面积384.8平方千米。居住最高的村寨为后山村委会的花树林村,海拔2240米,最低为哨街村委会的丙郎河村,海拔940米,云县最高峰大丙山(海拔2834米)位于后山村委会与漫湾镇白莺山农村办事处交界。镇政府驻地茂兰街,海拔1240米。全镇辖15个村民委员会,即茂兰、马四、多依、忙卓、牛圈箐、温平、净石、岭磨、安乐、拨还河、哨街、后山、旧村、转水河、丙令,235个村民小组。镇政府驻地茂兰街,距县城25千米,是全镇政治、经济、文化及交通中心。茂兰镇气候主要受印度洋暖湿气候、西南季风和赤道辐射的影响,主要特点是干、雨季分明,主体气候明显,除高海拔地带霜期稍长,大部分地区霜期短。全年日照时数2100小时以上,海拔在1300米以下的茂兰、忙卓、牛厩箐和哨街的清水河、羊街一带,属低热河谷地区,年平均气温19℃左右,≥10℃积温为6700℃以上;海拔1300~1800米的马四、多依、安乐、温平、净石等地,属温暖半山区,年平均气温15.6℃~18.3℃,≥10℃积温为5250℃~4690℃;海拔在1800米以上的后山、岭茂、拨还河和哨街上半部,以及丙令、旧村、转水河上半部,属温凉山区,年平均气温15.6℃以下,≥积温5250℃以下。全年平均气温为17.2℃。年降雨量4.9372亿立方米,年地下水量0.58246亿立方米。地下水深155毫米,出水量0.08立方米/秒的茂兰温泉是茂兰得天独厚的自然资源。.