Elva, som har gitt navn til byen ved utløpet, har utspring på vestsida av Oddevassheia, lengst nord i Hægebostad kommune. Elva har sitt løp via Eiken og Hægebostad før den renner ut i Lyngdalsfjorden mellom Årnes og Kvavik i Lyngdal. Det største fallet er på 36 meter i Kvåsfossen.