公兴镇地处剑阁东南端,东经105°31′30″北纬31°5′,东与圈龙乡、香沉镇接壤,南与涂山乡相接,西与吼狮乡相邻,北与碑垭乡毗邻,距新县城108公里,剑南路穿境而过约7公里。境内平均海拔620米,最高海拔750米,最低海拔492米。全镇总幅员面积34.38平方公里,东西宽约4公里,南北长约8.6公里。总耕地面积10200亩,其中田4378亩,地5822亩,其中中低产田地3000亩。水域面积2850亩,园地10700亩,退耕还林2158亩,淹没面积300亩,林地25362亩,森林覆盖率49%。