Saint-Martial est une commune du Sud Charente, située à 7 km au sud-ouest de Montmoreau, dont elle fait partie du canton, et 32 km au sud d'Angoulême.
Le bourg de Saint-Martial est aussi situé à 9 km au nord-est de Brossac, 11 km au nord de Chalais et 20 km au sud-est de Barbezieux