Le canton n° 21 (Le Nord-Libournais) comprend les communes suivantes : Abzac, Les Artigues-de-Lussac, Bayas, Bonzac, Camps-sur-l'Isle, Chamadelle, Coutras, Les Eglisottes-et-Chalaures, Le Fieu, Francs, Gours, Guîtres, Lagorce, Lapouyade, Lussac, Maransin, Montagne, Néac, Les Peintures, Petit-Palais-et-Cornemps, Porchères, Puisseguin, Puynormand, Sablons, Saint-Antoine-sur-l'Isle, Saint-Christophe-de-Double, Saint-Christophe-des-Bardes, Saint-Cibard, Saint-Ciers-d'Abzac, Saint-Denis-de-Pile, Saint-Martin-de-Laye, Saint-Martin-du-Bois, Saint-Médard-de-Guizières, Saint-Sauveur-de-Puynormand, Saint-Seurin-sur-l'Isle, Savignac-de-l'Isle, Tayac, Tizac-de-Lapouyade.
Le bureau centralisateur de ce canton est le bureau centralisateur de la commune de Coutras.