桐棉镇位于桂西南部(距宁明县城101公里)、十万大山余脉及两国(中国、越南)、三市(崇左市、防城港市、越南谅山省)、三县(宁明县、防城区、越南亭立县)的交汇处,东距东兴市131公里、防城港市153公里,南到越南亭立县62公里,西至凭祥市友谊关121公里。分别与该县那楠乡、板棍乡、峙浪乡、爱店镇,防城港市的垌中镇,越南亭立县的兵沙社、白沙社接壤。离那堪乡辖境也不远,途经那楠乡再抵达那堪乡。北江至板达公路(直通越南)贯穿全乡南北,广西沿边三级公路纵横东西方向,与各村屯公路形成便捷的交通网。17个村(居)委会中有9个行政村30个自然屯与越南交界,陆地国境线长122公里,是宁明县面积最大、广西国境线最长的乡镇。