Buchanan is a city in Berrien County in the U.S. state of Michigan. The population was 4,456 at the 2010 census. The city is located at the southeast corner of Buchanan Township, about 5 miles west of Niles.