Goshen is a town in Pike County, Alabama, United States. As of the 2010 census, the population was 266, down from 300 in 2000. It incorporated in 1907. A post office called Goshen has been in operation since 1839. The town was named after the biblical Land of Goshen.