La Souvigne prend sa source vers 557 mètres d’altitude, à quelques dizaines de mètres au sud de la route départementale (RD) 10, au lieu-dit les Crozes, sur la commune de Saint-Paul, deux kilomètres et demi à l’est du bourg de Marc-la-Tour.
Elle sert de limite aux communes de Marc-la-Tour et Saint-Paul sur plus de deux kilomètres puis arrose le bourg de Saint-Sylvain. Elle longe ensuite la RD 112, passe sous la RD 1120 — qu'elle va suivre jusqu'à son terme — et reçoit aussitôt sur sa droite le ruisseau de la Sagne. Elle passe sous la RD 10E2 à l'ouest du bourg de Forgès puis est grossie par le ruisseau de Méjou en rive droite. Environ un kilomètre et demi plus en aval, son principal affluent, la Franche Valeine la rejoint également en rive droite. Elle passe sous la RD 921 et longe le bourg de Saint-Chamant. Elle est franchie par les RD 169 et 12 et rejoint la Dordogne en rive droite, à 171 m d’altitude, au lieu-dit le Moulin Bas en limites des communes d'Argentat et de Monceaux-sur-Dordogne.
La Franche Valeine a plusieurs affluents dont le ruisseau des Rochettes qui a lui-même un affluent, le ruisseau de la Font Blanche[7]. De ce fait, le rang de Strahler de la Souvigne est de quatre.
À Forgès, la Souvigne comprend une zone inondable au niveau du camping[9].
À Saint-Chamant, les débordements de la Souvigne concernent régulièrement le pont de Soulages et le lieu-dit Échaunie, et en 2001, le bourg a été inondé[10].
À Monceaux-sur-Dordogne, les débordements sont limités[11].
L'étude effectuée par la commune d'Argentat indique que les principales crues récentes de la Souvigne sont datées d', et avec des débits estimés respectifs de 130, 82 et 80 m3/s, la crue de 1960 étant d'un niveau plus que centennal[12].