The river
Tresa 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 13 kilometres (8 mi) 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.