Die Gacka fließt kurvenreich von der Quelle im Südosten auf einer Länge von 11 km durch die Gacka-Ebene zwischen dem Velebit-Gebirge und der Mala Kapela. Sie entspringt im südöstlichen Teil des Karstfelds von Gacka (kroatisch Gacko polje) 457 Meter ü.d.M. in einer Felsschlucht im Hinterland des Velebit-Massivs bei Tonković vrilo (dt. Tonković-Quelle). Danach wird bereits die Wasserkraft zum Betrieb mehrerer Wassermühlen bei Sinac genutzt. In ihrem Oberlauf wird sie von mehreren Zuflüssen (Knjapovac, Begovac und Malinišće) verstärkt und mäandert dann durch die Gacka-Ebene und durch die Stadt Otočac nach Nordwesten. Die wichtigsten Zuläufe flussabwärts sind die Sinačka pučina und die Kostelka.

Von ihrem ursprünglichen Flusslauf sind nur noch elf Kilometer von Sinac bis Vivoze geblieben. Danach fließt der Fluss in Kanälen und wird durch einen Tunnel in einen See nach Gusić polje geleitet, von wo er wieder durch einen Tunnel die Turbinen in Sv. Juraj antreibt und danach im Meer endet.