Изначально КБЖД хотели проложить по правому берегу Ангары и собирались соорудить для этого понтонный мост. Но из-за чересчур высоких колебаний воды пришлось пойти по технически куда более сложному пути и «приручить» левый берег реки, образованный скалистыми породами и обрывающийся крутыми склонами.
Для проектирования и руководства строительством государство привлекло самых опытных и талантливых инженеров страны. Особенно велик был вклад итальянских инженеров, и одна из подпорных стенок даже называется итальянской. В числе рабочих были и наемники из-за рубежа — в основном итальянцы и албанцы, а также австрийцы, греки, китайцы, японцы, турки и т.д.
Первоначально КБЖД построили в одной колее. В 1911-1914 годах были сооружены вторые пути. Это позволило увеличить пропускную способность дороги до 48 пар поездов в сутки. На этом этапе строительства стали применять новый на тот момент материал железобетон: по сравнению с природным камнем он более надежен и податлив.
С 1896 по 1900 годы был построен участок пути, соединяющий Иркутск с мысом Малый Баранчик (на котором стоит порт Байкал). Параллельно велось строительство на восточном берегу Байкала. С 1899 по 1901 годы была проложена магистраль от Танхоя до Слюдянки. Самый сложный отрезок (Слюдянка – станция Байкал) начали возводить лишь в 1902 году.
Полноценная работа над КБЖД началась осенью 1899 года. Самые сложные задачи выполняли арестанты и ссыльные Александровской тюрьмы, были сложности с доставкой строительных материалов и продовольствия. Во время морозов рабочие ютились в ледяных бараках и палатках. Дорогу возводили практически вручную: проводили взрывные работы для создания тоннелей, большие глыбы разбивали кувалдами, из бревен и лебедок сооружали мост. Материалы доставляли по воде: летом на баржах, а зимой — гужевым транспортом по льду.
Комитет по строительству торопил рабочих. Их силами удалось закончить основные работы и запустить движение поездов на год раньше намеченного срока. В это время на КБЖД появилось около 10 остановочных пунктов.
Причиной спешки стало начало Русско-японской войны. Уже в 1900 году работоспособное население Российской империи (и так с трудом собранное на строительство) призвали в армию, что привело к снижению темпов строительства. Если в 1901—1902 годах над возведением дороги трудились около 9 тыс. человек, то в 1903—1904 годах — 13,5 тыс. Работы по развитию инфраструктуры не велось: все силы были брошены на скорейший ввод дороги в эксплуатацию. Первый поезд был запущен 18 сентября (1 октября по новому стилю) 1904 года, а 16 (29) октября 1905 года дорога была принята в постоянную эксплуатацию. Эту дату принято считать официальным днем рождения Кругобайкальской железной дороги.
С 1904 по 1949 годы КБЖД была магистралью. Но после строительства Иркутской ГЭС вода в Байкале поднялась настолько, что железнодорожное полотно от станции Иркутск до порта Байкал затонуло. Пришлось прокладывать Транссиб по горам, в обход озера, и сейчас Кругобайкалка — это тупиковая железнодорожная ветка с пятью станциями.