The source of the Soča lies in the Trenta Valley in the Julian Alps in northwestern Slovenia, at an altitude of . The river flows through the Triglav National Park where is the mountain Triglav (2,864 m), the highest mountain in the Julian Alps and in the country. Then it flows to the south past the Slovenian towns of Bovec, Kobarid, Tolmin, Kanal ob Soci and Nova Gorica (where it is crossed by the Solkan Bridge); here, at an altitude of , the river crosses the border and gets into Italy.