According to the United States Census Bureau, the town has a total area of , of which is land and is water. The Androscoggin River, the Cathance River and the Muddy River drain Topsham. These rivers empty into Merrymeeting Bay, an inland delta. Merrymeeting Bay is located to the northeast of Topsham.