The town began in 1883, as a port and supply centre for the surrounding region. It is the administrative centre for the Shire of Carnarvon, the town site was officially listed on 4 June 1891. It was named after Henry Herbert, 4th Earl of Carnarvon, Under-Secretary of State for the Colonies.