Der Fish River verläuft im zentralen Norden des Aroostook County nahe der kanadischen Grenze. Er entsteht am Zusammenfluss von Fox Brook und Carr Pond Stream 3 km südlich des Fish River Lake. Der Fish River durchfließt den Fish River Lake in nördlicher Richtung und wendet sich im Anschluss nach Osten. Er fließt zum knapp 20 km weiter östlich gelegenen Portage Lake, den er an dessen Nordende wieder verlässt. Nun fließt er in Richtung Nordnordwest zum südlichen Ende des 12,5 km entfernten Saint Froid Lake. Von dessen Nordende strömt der Fish River 4,5 km zum Eagle Lake. Unterhalb des Eagle Lake sind es noch 21 Kilometer Fließstrecke bis zur Mündung in den Saint John River. An der Flussmündung liegt die Kleinstadt Fort Kent. Das der Mündung gegenüberliegende Ufer des Saint John River gehört zur kanadischen Provinz New Brunswick.
Hydrologie
Das Einzugsgebiet des Fish River umfasst ca. 2315 km².[3] Am Pegel 3,4 km oberhalb der Mündung beträgt der mittlere Abfluss 42 m³/s.[3] April und Mai sind die abflussstärksten Monate mit im Mittel 96,5 bzw. 140 m³/s.[3]