La commune se trouve dans la partie nord du département de la Gironde, avec le département de la Charente-Maritime à 26 km au nord. Elle est située sur la D.669 entre Blaye à 22 km au nord-ouest, Saint-André-de-Cubzac à 6 km au sud-est et la rive droite de la Dordogne formant sa limite sud.