Город был основан в 1666 г. как казачье зимовье на правом берегу реки Селенги при впадении в неё реки Уды. В 1678 г. уже известен как острог — форпост продвижения казаков на восток. Удинский острог был построен для сбора ясака. Позднее острог прикрывал от нападений кочевников торговые караваны, направлявшиеся в Китай и Нерчинск. Постепенно город утрачивает своё военное значение. На первый план выдвигаются торговые, транспортные и административные функции города. В 1775 г. Верхнеудинск получил статус города и герб согласно грамоте вольностей городам Екатерины II.
В годы Гражданской войны Верхнеудинск - один из крунпных городов Забайкальской области. В июле 1918 г. был резиденцией ЦИК Сибири, а через Верхнеудинское Казначейство осуществлялся выпуск денежных суррогатов по указанию ЦИК Сибири. Из-за сложной международной и внутренней военно-политической обстановки, которая сложилась весной 1920 г. на востоке России, Советская Россия санкционировала создание политического "буфера".
Уездная Земская Управа на тот момент оказалась носителем высшей власти в крае и 5 марта 1920 г. была переименована во Временную Земскую Власть Прибайкалья. 6 апреля 1920 г. Учредительным съездом трудящихся Прибайкалья в Верхнеудинске была провозглашена Дальневосточная Республика, а город до падения режима Семенова в октябре 1920 г. был столицей ДВР.
27 июля 1934 г. город был переименован в Улан-Удэ