L’Elz nait à Furtwangen im Schwarzwald, à 200 mètres de la source d’une autre rivière, la Breg qui est en fait le principal cours d’eau à l’origine d’un autre grand fleuve européen : le Danube. Entre les deux passe la ligne de partage des eaux.
Ensuite la rivière poursuit sa course vers le nord, puis forme un coude et prend la direction sud-ouest, passant consécutivement à Elzach, Waldkirch et bifurque de nouveau vers le nord-est avant d’arriver à Emmendingen.
À Riegel am Kaiserstuhl, elle alimente le Leopoldskanal qui rejoint le Rhin, mais elle continue son cours naturel au nord de celui-ci, passe à Rust en traversant Europa Park et se jette à son tour dans le Rhin à environ 2 km au nord de la localité.