The River Dyfi rises in the small lake Creiglyn Dyfi at about above sea level, below Aran Fawddwy, flowing south to Dinas Mawddwy and Cemmaes Road (), then south west past Machynlleth to Cardigan Bay () at Aberdyfi. It shares its watershed with the River Severn () and the River Dee () before flowing generally south-westwards down to a wide estuary. The only large town on its route is Machynlleth.