In its upper reaches the Elz flows in a northerly direction, initially through a high valley with pasture land, bog and ice age glacial landforms. Then after a steep drop at the little Elz Falls, it continues through a deeply incised, wooded and sparsely populated V-shaped valley.
In the Oberprechtal valley it bends sharply towards the southwest. This is the start of the middle (actual) Elz valley, which runs in a straight line towards the southwest, separating the High Black Forest (700 to 900 m) to the southeast from the far lower parts of the Central Black Forest. In the now densely populated valley are the town of Elzach, the villages of Winden and Gutach im Breisgau, where the Elz receives the waters of the Wild Gutach, which is just under half its size. Below the town of Waldkirch the Elz enters the Upper Rhine Plain near Denzlingen in the Freiburg Bay. From now on it flows in a northwesterly direction, past Emmendingen and Teningen. Some of the water of the Elz is diverted into a millstream through Emmendingen, where it drives several hydropower stations and enhances the appearance of the town. Near Riegel on the Kaiserstuhl the Elz merges with the Dreisam from Freiburg im Breisgau and the Old Dreisam.
Soon thereafter the Elz forks again: a certain amount of water (up to 8.5 m3/s) flows down the Old Elz (Alte Elz) through the Europapark Rust to its mouth on the Rhine. Other quantities of water, on average about 13.2 m3/s, is fed along the Leopold Canal, built by Johann Gottfried Tulla, northwest of Rheinhausen into the Rhine. The Old Elz empties higher up, near Schwanau, into the Rhine. Today it is led down various Old Rhine channels parallel to the Rhine to the southern edge of Kehl, a distance of 121 kilometres from the source; formerly it was over 90 kilometres long.
Tributaries
The table shows all tributaries that are longer than 5 kilometres, with the exception of millstreams alongside rivers.[2] Based on the waterbody number (Fließgewässerkennziffer), the Frischnaubach is the highest tributary - it discharges into the Elz in the parish of Prechtal. The Ettenbach is the lowest tributary and empties into the Elz just before Grafenhausen. All tributaries have their catchment areas in the county of Emmendingen, with the exception of the Ettenbach, which flows through in Ortenaukreis.
^Length based on the Gewässernetz layer (AWGN) of the online map server of the LUBW. The length may include upper reaches with a different name and the name of upper reaches may transition from hydrologically dominating tributaries to become the name run.
^Catchment area from the Basiseinzugsgebiet (AWGN) layer of the online map server of the LUBW, in some cases calculated from the sub of subareas.