The riverTresa leaves Lake Lugano at a point between Lavena Ponte Tresa in Italy and Ponte Tresa in Switzerland and flows into Lake Maggiore near Luino, a few hundred metres after joining the Margorabbia. At the outflow from Lake Lugano the river is crossed by a bridge which unites the Swiss and Italian parts of Ponte Tresa; a customs post divides them.
The river is about long, and for most of its course marks the boundary between the Italian Province of Varese and the Swiss canton Ticino. It passes through the Swiss communes of Ponte Tresa, Croglio and Monteggio, and the Italian communes of Lavena Ponte Tresa, Cremenaga and Luino.
A dam on the river, known as the Creva dam serves two purposes: to use the difference in elevation between the lakes to produce hydropower, and as far as possible to regulate the flow of water into Lake Maggiore in order to avoid or limit the dangers of flooding.