 Union is located northwest of the center of Burnett County, with its northwestern border following the St. Croix River, the state line between Wisconsin and Minnesota.The Clam River flows into the St. Croix in Union, entering the town from the south.According to the United States Census Bureau, the town has a total area of , of which is land and , or 8.06%, is water.