The Afon Dwyfor is a river in Gwynedd, north-west Wales. It rises in Cwm Dwyfor (53°01′13″N 4°10′41″W / 53.0204°N 4.1780°W) at the head of Cwm Pennant, gathers to itself numerous streams which drain the surrounding mountains from Mynydd Graig Goch in the west to Moel Hebog in the east, then flows southwest towards Dolbenmaen and out of the Snowdonia National Park.
After a brief diversion west, it turns south, then southwest again, heading for the village of Llanystumdwy. Beyond Llanystumdwy it heads for the coast and Tremadog Bay (52°54′38″N 4°15′38″W / 52.9105°N 4.2606°W). Its mouth has been diverted eastwards for more than 1 km by a spit resulting from longshore drift.