玉龙镇位于威宁县西北部,距威宁县城107千米,玉龙镇总面积147.77平方千米,居住着汉族、彝族、苗族、回族、哈尼族、布依族等民族。东邻牛棚镇,北抵中水镇,南与云南省曲靖市会泽县隔牛栏江而望,西与昭通市鲁甸县、昭阳区接壤,省际边界线长120多千米,处于两省三地四县交汇处。北起新寨村袁家口子,顺山脉向南延伸,至中营村红顶梁子东折到牛栏江畔的九股水,复向东沿牛栏江而上,至沙田村红岩组马家垭口上。
北与中水镇出水,牛棚镇红岩相连。东靠牛棚镇雨朵管理区。玉龙镇北高南低,山脉成南北走向,均以牛栏江为终点。由玉龙小河、螃蟹沟将玉龙镇切分为3个板块,山高谷狭。现镇人民政府驻沙田社区炉房组。1991年11月建镇、并乡、撤区,将原来牛棚区的玉龙乡、田坝乡、王寨乡合并为玉龙乡,以原玉龙小乡政府为合并后的行政中心,机关所在地设在大明槽。
1994年迁到炉房组。1993年3月,设玉龙、田坝、王寨3个办事处实行分片管理。2000年7月,改办事处为管理区,2016年玉龙乡更名为玉龙镇,取消分片管理,全镇辖沙田、新发、田坝、大寨、新寨5个居民委员会,和平、新民、营寨、团结、中营、工农、飞蛾、深沟8个村民委员会,2023年全镇改为新发、田坝、大寨、新寨、和平、新民、营寨、团结、中营、工农、飞蛾、深沟等12个村,1个沙田社区。