The town lies mostly on the north bank of the Skagit River, and is split into half by the lower Baker River (a tributary to the Skagit River).