La Gartempe a 170 kilomètres de cours, dont près de la moitié dans la Haute-Vienne. Elle commence dans le département de la Creuse, au sud-sud-est de Guéret, dans des montagnes de 600 à 700 mètres d'altitude. Entrée dans la Haute-Vienne après un cours d'un peu plus de 50 kilomètres, elle continue d'y couler de l'est à l'ouest, jusqu'au point où, près de Bellac, elle tourne brusquement au nord, suivant ainsi les deux grandes directions de la Vienne, à laquelle elle est presque exactement parallèle. Elle passe sous le viaduc de Rocherolle, à Bessines, à Châteauponsac, à 4 kilomètres au nord de Bellac. De la Haute-Vienne, qu'elle quitte avec une largeur moyenne de 50 mètres, elle entre dans la Vienne, où elle arrose Montmorillon et se perd dans la Creuse à la Roche-Posay, après s'être encore augmentée de l'Anglin. Semblable à presque toutes les rivières de la Haute-Vienne (excepté la Combade, le Thaurion et la Vienne), elle n'est pas navigable sur le territoire du département, mais seulement flottable.
La Gartempe reçoit dans le département l'Ardour, la Couse, la Semme, le Vincou, la Brame. Hors du département, elle recueille, par l'Anglin les eaux de la Benaize et de son affluent, la l'Ass, et celles du Salleron.
 — L'Ardour, ruisseau large de 5 mètres, long de 30 kilomètres, a presque tout son cours dans la Creuse : il passe à 2 kilomètres au nord de Laurière et se perd à une petite distance en amont du viaduc de Rochcrolle.
 — La Couse, ruisseau long de 40 kilomètres environ, large en moyenne de 5 mètres, descend des monts  d'Ambazac et a son embouchure à 6 kilomètres au-dessous de Châteauponsac.
 —La Semme, née dans le département de la Creuse, au sud-est de la Souterraine, coule dans une vallée parallèle à celle de la Gartempe et peu éloignée au nord. Sa largeur moyenne est de 6 mètres, sa longueur de 50 kilomètres environ; elle passe à Fromental, au pied de la colline de Châteauponsac, à Villefavard, à Droux.
— Le Vincou, principal tributaire de la Gartempe dans la Haute-Vienne, a 50 kilomètres de longueur, et, dans son cours inférieur, une largeur moyenne de 14 mètres. Né dans les monts d'Ambazac, il traverse de grands étangs, passe au nord de Nantiat et à Bellac : il reçoit le Glayeule et la Bazine, celle-ci au pied du coteau de Bellac.
 — La Brame, longue de près de 60 kilomètres, a un cours constamment parallèle à celui de la Gartempe; elle coule donc de l'est à l'ouest. Elle commence dans le département de la Creuse, près de la Souterraine. Dans la Haute-Vienne, elle baigne Magnac-Laval, reçoit la Vareille et passe au nord du Dorât.
 — Le charmant Anglin, long de plus de 80 kilomètres, a son cours dans la Creuse, l'Indre et la Vienne;  il  ne touche point le département, mais sur une faible étendue il n'en est guère qu'à 2 kilomètres. Les rivières de son bassin qui coulent dans la Haute-Vienne sont la Benaize,   l'Ass  et  le   Salleron. La Benaize, cours d'eau de 60 kilomètres, vient de la Creuse : elle coule devant Saint-Sulpice-les-Feuilles et recueille la Chaume et la Planche. L'Ass  (40 à  45 kilomètres), affluent de  la Benaize, passe à Lussac-les-Eglises. Le Salleron n'a dans le département que son cours tout à fait supérieur.