Elle mesure 489 km de longueur et prend sa source dans le district Cariboo, dans les Rocheuses, puis s'écoule vers le Sud où elle prend le nom de rivière Thompson Nord. À Kamloops, la rivière Thompson Sud, issue du lac Shuswap, la rejoint. Les deux se réunissent pour déverser leurs eaux bleu-vert dans le fleuve Fraser, à Lytton. Les rives du cours inférieur sont montagneuses et presque dénudées, l'armoise en est la seule végétation. Un grand nombre de terrasses spectaculaires servent à la culture fourragère et sont utilisées comme pâturage pour le bétail. Les lignes de chemin de fer transcontinentales du Canadien Pacifique et du Canadien National suivent la rivière, de Kamloops à Lytton. Simon Fraser l'a baptisée ainsi car il croyait, à tort, que David Thompson l'avait découverte.