В 2011 году Хорвата выбрал на входящем драфте OHL в 1-м раунде под общим 9 номером клуб «Лондон Найтс»[2]. Первый свой сезон в OHL Бо завершил забив 11 голов, и набрав 30 очков за 64 игры, занял 18-е место среди игроков, играющих свой первый год в лиге[3]. В плей-офф забил один гол и сделал 3 голевые передачи за 18 игр, а «Лондон Найтс» выиграли Кубок Джей Росса Робертсона. Победа в OHL позволила «Лондон Найтс» принять участие в Мемориальном кубке, где Хорват забил голы в трёх матчах, однако это не помогло «Рыцарям» одержать победу в кубке, лондонцы проиграли в финале со счётом 1:2 клубу из QMJHL «Шавиниган Катарактес».
В сезоне 2012/13 забил уже 33 гола и набрал 61 очко за 67 игр[4]. В опросе среди главных тренеров лиги ОХЛ Бо признали лучшим при игре на вбрасываниях и блокированию бросков соперника. В плей-офф того же сезона Хорват забил 16 голов и набрал 23 очка в 21 игре, тем самым помог «Рыцарям» защитить титул чемпионов лиги. По окончании сезона Хорват получил «Уэйн Гретцки 99 Эворд», этот приз вручается самому ценному игроку плей-офф OHL[5][6]. В Мемориальном кубке 2013 года «Рыцари» потерпели поражение в полуфинале со счётом 1:2 от команды WHL «Портланд Винтерхокс», на этом турнире Хорват набрал 5 очков в 5 матчах и получил «Джордж Парсонс Трофи», вручаемый за благородство и добропорядочность на льду[7].
В преддверии драфта НХЛ 2013 годаЦентральное скаутское бюро НХЛ поставило Хорвата на 15-е место в рейтинге среди полевых игроков, играющих в североамериканских лигах[8]. В итоге Хорвата выбрал в 1-м раунде под общим 9-м номером клуб «Ванкувер Кэнакс».
Ванкувер Кэнакс
6 августа 2013 года, во время проведения тренировочного лагеря молодёжной сборной Канады, Бо подписал трёхлетний контракт новичка с «Ванкувер Кэнакс»[9].
Хорват дебютировал в НХЛ 4 ноября 2014 года в матче против команды «Колорадо Эвеланш». 20 ноября того же года, шесть игр спустя, Бо забил свой первый гол в НХЛ в ворота Фредерика Андерсена из «Анахайм Дакс»[10]. В следующей игре Хорват отдал 3 голевые передачи в матче против «Чикаго Блэкхокс». 25 ноября руководство «Кэнакс» объявило, что не намерены возвращать Хорвата в OHL, несмотря на то, что такая возможность была[11]. Позже главный тренер Ванкувера Уилли Дежарден заявил, что не ожидал от Хорвата такой игры, и что он будет бороться в первом же сезоне за место в основном составе команды[12]. В сезоне 2014/15 Бо играл в звене с Янником Хансеном и Роналдсом Кениньшем, набрал 25 очков в 68 играх и занял 6 место по игровому времени в команде. Также Хорват набрал 4 очка в плей-офф в серии против «Калгари Флэймз», которая завершилась поражением «Кэнакс» в 6 матчах.
В сезоне 2015/16 Хорват вместе с партнёром по звену Свеном Берчи вышел на первые роли в команде в связи с тем, что травмы получили лидеры «Кэнакс» Брэндон Саттер и Хенрик Седин. В том сезоне Бо забил 16 голов и набрал 40 очков, сыграв все 82 игры в регулярном чемпионате.
10 января 2017 года Хорват был вызван на матч всех звёзд, на тот момент он забил 13 голов и отдал 16 голевых передач в лиге[13]. Бо стал самым молодым игроком «Кэнакс», вызванным на матч всех звёзд со времён Тревора Линдена[14]. 3 марта 2017 года Хорват был назван ассистентом капитана взамен Александра Барроуза. Сезон 2016/17 Бо завершил с 20 голами и 32 голевыми передачами.
8 сентября 2017 года «Кэнакс» подписали с Хорватом контракт на 6 лет и 33 млн долларов со средней зарплатой 5,5 млн долларов в год[15]. 5 декабря 2017 года в матче против «Каролины Харрикейнз» Бо получил перелом ноги и пропустил шесть недель. Несмотря на травму, Хорват забил 22 гола за 64 игры, играя в звене со Свеном Берчи и новичком Броком Бесером.
В сезоне 2018/19, после окончания карьеры Хенрика и Даниэля Сединов, Хорват был назначен одним из четырёх альтернативных капитанов команды, после того, как его освободили от этой должности в сезоне 2017/18[16], а 9 октября 2019 года стал 14-м капитаном в истории «Ванкувер Кэнакс»[17].