McMahan is on the Highland Rim in the southeastern section of the county, on McMahan Creek, and two miles north of Ivy Bluff. It got its name from a church which is still there and at one time had a school.