Hudson is a town in Caldwell County, North Carolina, United States. The population was 3,776 at the 2010 census. It is part of the Hickory?Lenoir?Morganton Metropolitan Statistical Area.