La Drina prend sa source entre les monts du Maglić et de la Pivska planina, entre les villages de Šćepan Polje (au Monténégro) et Hum (Bosnie-Herzégovine). À sa naissance, elle s'oriente en direction de l'ouest puis effectue une large boucle en direction du nord-est, le long des pentes de la Maluša planina. Elle traverse ensuite les villages de Kosman, Prijedjel, Dučeli, Čelikovo Polje, Kopilovi, Trbušće, Brod et la ville de Foča. Dans cette partie de son cours, elle reçoit sur sa gauche les eaux de la Sutjeska, de la Bjelava et de la Bistrica ; la Čeotina, un de ses affluents droits, la rejoint à Foča.
À cet endroit, la Drina a creusé l'une des gorges principales de son parcours. Cette gorge, appelée Suhi Dol-Biserovina, longue de 45 km, s'écoule entre les monts Kovač et Jahorina. Les villages de Zlatari, Jošanica, Ustikolina, Cvilin, Zebina Šuma, Osanica, Kolovarice, Vranići, Mravinjac, Biljin, Vitkovići et Zupčići sont situés dans la gorge, tout comme la ville de Goražde. La rivière y reçoit deux affluents gauches, la Kolunska rijeka et l'Osanica.
La Drina poursuit sa route en direction du nord-est, coulant près des villages de Žuželo, Odžak, Kopači et Ustiprača et entrant dans la gorge de Međeđa qui s'étend sur 26 km entre les monts Vučevica et Devetak. La partie la plus étroite de cette gorge se situe à Tijesno. Elle reçoit alors les eaux de la rivière Prača sur sa gauche et celles de la Janjina et du Lim sur sa droite. Les villages de Trbosilje, Međeđa et Orahovci sont situés dans la gorge, ainsi que le lac artificiel de Višegrad, créé par le barrage qui alimente la centrale hydroélectrique de Višegrad.
À Višegrad, la Drina reçoit le Rzav sur sa droite et elle s'oriente vers le nord-ouest au mont Suva Gora en entrant dans la gorge de Klotijevac. Cette gorge, longue de 38 kilomètres et profonde d'un kilomètre, a été creusée entre les monts Bokšanica (à l'ouest) et Zvijezda (à l'est). Les villages de Sase, Resnik, Đurevići et Gornje Štitarevo sont situés dans la gorge et, sur cette partie de son cours, la rivière Kukal se jette dans la Drina en venant de la droite. Au village de Slap, la rivière reçoit sur sa gauche les eaux de la Žepa et elle s'oriente brusquement vers l'ouest. Près du village de Jagoštica, elle devient la frontière entre la Bosnie-Herzégovine et la Serbie.
La Drina est située sur la frange orientale des Alpes dinariques et, dans la partie septentrionale de son cours, au sud de la plaine pannonienne. Dans le haut de son cours, la Drina traverse d'épaisses strates de calcaire caractéristiques des Dinarides ; on y trouve aussi du calcaire dolomitisé et sableux, plus rarement de la dolomite, des marnes et des schistes du Néogène, des flyschs du Crétacé et des formations de diabase et de chert. Le moyenne cours de la rivière se caractérise par la présence roches magmatiques, de serpentinite, de grès et, localement, de calcaire sableux et marneux. Dans la partie inférieure de son cours, on rencontre du gravier, du gravier sableux et, sporadiquement, du sable.
La station météorologique de Loznica, située à 121 m d'altitude, enregistre des données depuis 1901 (coordonnées ).
Pour la période de 1961 à 1990, les moyennes de température et de précipitations s'établissaient de la manière suivante :
Mois | Janv | Fév | Mars | Avr | Mai | Juin | Juil | Août | Sept | Oct | Nov | Déc | Année |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Températures maximales moyennnes (°C) | 3,8 | 6,9 | 12,1 | 17,5 | 22,4 | 25,3 | 27,4 | 27,4 | 23,9 | 18,3 | 11,3 | 5,6 | |
Températures moyennnes (°C) | -0,2 | 2,3 | 6,5 | 11,4 | 16,1 | 19,2 | 20,7 | 20,1 | 16,5 | 11,3 | 6,2 | 1,8 | |
Températures minimales moyennes (°C) | -3,5 | -1,4 | 1,8 | 6,0 | 10,4 | 13,6 | 14,8 | 14,3 | 11,2 | 6,6 | 2,5 | -1,4 | |
Moyennes mensuelles de précipitations (mm) | 51,0 | 49,2 | 57,7 | 70,0 | 82,7 | 99,5 | 84,4 | 76,3 | 61,9 | 53,7 | 70,3 | 63,6 | |