Williamsport is located along State Road 28 near the shores of the Wabash River which forms the eastern border of the county.
According to the 2010 census, Williamsport has a total area of , all land [REF].