Elva har utspring på nordvestsida av Dalsbotnfjellet. Den renner deretter mot vest gjennom Bjørndalen, hvor den kalles Bjørndalselva. Elva faller bratt ned i hoveddalen ved Trangane, hvor den skifter navn til Trangselva og snur mot sør og renner inn i Nordste Nordgulvatnet. Mellom Nordste og Synste Nordgulvatnet, en strekning på 0,6 kilometer, kalles den Vassoelva. Derfra renner den først mot sørøst, før den snur i en stor bue mot vest og munner ut i Nordgulfjorden ved Nordgulen. De største sideelvene er Skåldalselva, som den løper sammen med rundt 0,5 kilometer før munningen i fjorden, og Setreelva, som renner inn i Synste Nordgulvatnet fra nordøst.