Der Sulzbach entspringt im Schwarzwald am Westhang des fast 870 m ü. NHN hohen Rammelsbacher Ecks auf etwa 735 m ü. NHN. Seine ersten vier Kilometer fließt er westwärts, nimmt einige bis über zwei Kilometer lange Nebenbäche vor allem von Süden auf und passiert dabei den einsam im Waldtal gelegenen Wohnplatz Bad Sulzburg. Danach kehrt er sich auf lange beibehaltenen nordwestlichen Kurs und durchquert das am Ende des Schwarzwaldtals zur Oberrheinischen Tiefebene gelegene Städtchen Sulzburg, wo ihm von Südsüdwesten sein längster Schwarzwald-Zufluss Fliederbach zuläuft.
Danach kreuzt er die am Schwarzwaldfuß in der Vorbergzone „Markgräfler Hügelland“ entlangziehende L 125 und durchquert dann in der flachen Tiefebene nacheinander das Dorf Dottingen der Gemeinde Ballrechten-Dottingen und das Städtchen Heitersheim. Nachdem er den Gewerbepark Breisgau an seinem rechten Ufer passiert hat, dort kurz nacheinander seine bedeutendsten Zuflüsse Eschbach von rechts und Ehebach von links aufgenommen hat, wendet er sich, nur noch etwa einen Kilometer vom Rhein entfernt, am Flugplatz Bremgarten vorbei auf dem Strom parallelen nordnordöstlichen Lauf von etwa acht Kilometern in den Rheinauen oder an deren Rand. Dort unterquert er westlich von Hartheim am Rhein die A 5. Schließlich fließt er nordwestlich von Hartheim auf etwa 199 m ü. NHN von rechts in den Oberrhein ein und mündet nach 19,4 km langem Lauf mit einem mittleren Sohlgefälle von ca. 28 ‰ etwa 536 Höhenmeter unterhalb seiner Quelle.
Zuflüsse
Von der Quelle zur Mündung, Längen und Einzugsgebiete nach der amtlichen Gewässerkarte[2] (andere Nachweise sind vermerkt),
Auswahl:
(Bach vom Rammelsbacher Eck), von rechts und Nordosten, 0,8 km
(Bach aus dem Böschlisgrund), von rechts und Osten, 1,1 km
(Bach aus dem Viehstellengrund), von rechts und Osten, 1,1 km
(Bach vom Riesterkopf), von rechts und Nordosten, 0,8 km
Riestermattgraben, von rechts und Nordosten im östlichen Sulzburg, 1,4 km
(Bach aus dem Krebsgrund), von rechts und Nordosten in Sulzburg, 1,2 km
Gänslegraben, von rechts und Nordosten in Sulzburg, 0,8 km
Fliederbach, von links in Sulzburg, 4,3 km und 4,7 km²
(Bach am Malteserbrunnen vorbei), von rechts und Osten am Ortsende von Sulzburg, 1,5 km
Eschbach, von rechts und Osten am Gewerbepark Breisgau, 11,2 km und 14,9 km²; ist linker Abzweig des Neumagen vor Staufen im Breisgau
Ehebach, von links und Südwesten kurz nach dem vorigen, 12,3 km und 32,2 km²
Hochwasser
Am 9. August 2007 erreichte der Sulzbach vor der Stadt Heitersheim einen Pegelstand von nahezu sechs Metern.[4]
In seinem Verlauf existieren mehrere Rückhaltebecken. Dabei gilt jenes oberhalb Heitersheims als modellhaft in seiner naturnahen Gestaltung. Das jüngste mit einem Volumen von 40.000 m³ entstand 2010 im Zuge der Sanierung und Modernisierung eines bereits bestehenden oberhalb der Stadt Sulzburg.[5]