Its source is located in Semsales, in the Fribourgeois/Vaudois Prealps, south-west of Bulle. It flows first south-west along the Fribourgeois/Vaudois Prealps and turns north after 10 km. The direction of the river changes again near Moudon to the north-east. From Payerne, the Broye is running in a large and agricultural valley. The river flows into Lake Morat first, and then into Lake Neuchâtel through the Broye canal (French: Canal de la Broye).