Der Haßelbach entspringt auf einer Höhe von etwa 250 m ü. NHN in Eidengesäß.
Er fließt durch den Ort, vorbei dann an der Schwarz- und an der Erlenmühle nach Altenhaßlau, wo er in eine Verrohrung läuft. Diese führt durch den historischen Ortskern am Rathaus.
Er verlässt die Verrohrung kurz darauf wieder, unterquert die Bundesautobahn 66 und mündet schließlich an der Grenze zu Gelnhausen, in der Nähe der neu erbauten Unterführung der Bahnstrecke Frankfurt–Göttingen, auf einer Höhe von ungefähr 130 m ü. NHN in einen linken Arm der Kinzig.
Sein etwa 4,9 km langer Lauf endet 120 Höhenmeter unterhalb seiner Quelle, er hat somit ein mittleres Sohlgefälle von 24 ‰.