Le canton n° 21 (Saint-Hilaire-du-Harcouët) comprend les communes suivantes : Buais-Les-Monts, Grandparigny, Hamelin, Lapenty, Les Loges-Marchis, Le Mesnillard, Montjoie-Saint-Martin, Moulines, Saint-Aubin-de-Terregatte, Saint-Brice-de-Landelles, Saint-Hilaire-du-Harcouët, Saint-James, Saint-Laurent-de-Terregatte, Saint-Senier-de-Beuvron, Savigny-le-Vieux.
Le bureau centralisateur de ce canton est le bureau centralisateur de la commune de Saint-Hilaire-du-Harcouët.