Родился 1 января 1887 года в Аплербеке (сейчас — район Дортмунда) в семье управляющего металлургического завода. До 1938 года считал себя потомком греческого адмирала и участника освободительного движения Константина Канариса. Впоследствии утверждал, что в действительности его предки были выходцами из Северной Италии по фамилии Канариси, переселившимися в XVII веке в Германию, и обращенными в лютеранство. Впрочем, ряд историков считают, что Вильгельм Канарис не ошибался насчет своего родства с Константином Канарисом, а официальная семейная история была изменена в угоду конъюнктурным соображениям, так как Германия была союзником Италии, воевавшей против Греции.
В апреле 1905 года вступил в ряды военно-морского флота кадетом, на учебном корабле «Штайн». Окончил Морской кадетский корпус в Киле. С 1907 года служил на крейсере «Бремен», участвовал в блокаде Венесуэлы. С января 1910 года — 2-й вахтенный начальник на миноносце «V-162», с октября 1911 по март 1915 гг. служил на лёгком крейсере «Дрезден». С марта по август 1915 года — интернирован в Чили. В августе 1915-го освобождён, в октябре того же года вернулся в Германию. С ноября 1915 года — капитан-лейтенант.
С 1916 года по заданию германской разведки организовал снабжение германских подводных лодок с территории Испании и Португалии. Командир субмарины U-16 с 2 июня 1917 года по 11 сентября 1917 года. С ноября 1917 года — командир транспортной подводной лодки UC-27, с января 1918-го — подводной лодки U-34, с мая 1918-го — командной лодки UB-128. За боевые отличия награждён Железным крестом 1-го и 2-го классов.
С 1919 года — адъютант военного министра Г. Носке. С февраля того же года служит в новом командовании флота Веймарской республики (рейхсмарине). С июня 1923 года — старший помощник на учебном крейсере «Берлин» (где он служил вместе с Рейнхардом Гейдрихом) В мае 1924 года направлен с секретной миссией на Дальний Восток для организации строительства в Японии подводных лодок для Германии, которой по условиям Версальского мира было запрещено их иметь. С октября 1924 года — начальник сектора подготовительно-мобилизационных работ в отделе флота при Главном командовании ВМС. Участвовал в тайном вооружении германских ВМС. С помощью созданной ещё во время войны агентурной сети наладил тайное размещение заказов для ВМС в Испании.
Тесно сотрудничал с испанскими спецслужбами, в 1928 году организовал подписание «Соглашения о взаимных отношениях между полицейскими управлениями Испании и Германии». Через Канариса было организовано обучение немецких лётчиков в Марокко. С октября 1926-го — референт при начальнике штаба ВМС. С июня 1928 года удалён из Главного командования и назначен старшим помощником командира линейного корабля «Шлезиен». С сентября 1930 года — начальник штаба базы ВМС «Нордзее». 1 октября 1931 года получил звание капитана цур зее (капитан 1-го ранга). С сентября 1932-го — командир линейного корабля «Шлезиен». С сентября 1933-го переведён на пост коменданта крепости Свинемюнде (на границе с Польшей).
1 января 1935 года назначен начальником военной разведки и контрразведки (абвер) Войскового управления Военного министерства. 1 мая 1935 года Канарису присвоено звание контр-адмирала. С февраля 1938-го, после создания Верховного командования вермахта (ОКВ), Канарис назначен руководителем Управленческой группы по общим вопросам, и ему переданы отделы абвера, тыла и пенсионного обеспечения. С июня 1938 года руководит только абвером. С 1 апреля 1938 года — в звании вице-адмирал.
Канарис был тесно связан с заговорщиками, которые начиная с 1938 года планировали свержение гитлеровского режима путём военного переворота. Среди наиболее активных заговорщиков был Ганс Остер, один из старших офицеров абвера.
С 1 января 1940 года — в звании адмирала. В 1940-м Канарису удалось получить сведения о планах Великобритании по захвату норвежских портов; информация, переданная Канарисом командованию германского флота, дала возможность вермахту усиленно и быстро осуществить оккупацию Норвегии.
В начале 1941 года Канарис провёл успешную операцию по дезинформации советского командования — ему удалось убедить советскую разведку в том, что Германия готовится к нападению на Великобританию, и обеспечить внезапность нападения на СССР. В 1942—43 гг. установил связи с разведслужбами союзников и летом 1943 года встретился в Сантандере (Испания) с руководителями английской и американской спецслужб. Здесь выдвинул план соглашения с западными державами: перемирие на Западе и продолжение военных действий на Востоке.
В 1942-м положение Канариса после провала операций «Боярышник» (восстание в Южной Африке), «Тигр» (афгано-индийский конфликт), «Шамиль» (восстание на Кавказе) и др. пошатнулось. В начале 1943 года несколько сотрудников абвера были арестованы гестапо по подозрению в организации покушения на Гитлера, было начато расследование деятельности всей разведслужбы Канариса. После целого ряда провалов операций, возглавлявшихся Канарисом, Гитлер в феврале 1944 года объявил об отстранении Канариса от должности, а также о том, что большая часть абвера переподчиняются Главному управлению имперской безопасности СС. После отставки Канарис был помещён в замок Лауэнштейн, покидать который ему запрещалось. С июня 1944 года уволен в запас.
С июля 1944 года — адмирал для особых поручений, начальник штаба при ОКВ по вопросам торговой и экономической войны. В середине 1944 года бывшие сотрудники абвера поставили Канариса в известность о готовящемся покушении на фюрера.
В июле 1944 года Канарис по приказу начальника гестапо Мюллера арестован Шелленбергом. Следствию не удалось доказать причастности Канариса к заговору. В начале февраля 1945 года вместе с другими подследственными перевезён в концлагерь Флоссенбюрг. Через несколько дней были обнаружены дневники Канариса, в которых он отрицательно отзывался о Гитлере. 8 апреля специальным судом во Флоссенбюрге (председатель Гуппенкотен) приговорён к смертной казни. 9 апреля повешен. Один из палачей-эсэсовцев показал на суде, что Канарис был повешен в железном ошейнике и умер в мучениях только через полчаса после повешения. Тела казнённых были сожжены на костре во дворе тюрьмы.
По результатам исследования израильского историка Дани Орбаха Канарис спас от уничтожения более 500 евреев, переправляя их за границы рейха — в основном в Испанию и Португалию, — выдавая их за шпионов. Среди спасённых Канарисом евреев числится и бывший духовный лидер иудейского религиозного движения любавических хасидов (Хабад) Йосеф Ицхок Шнеерсон, вывезенный офицерами абвера в начале 1940 года из Варшавы в Берлин, а оттуда в Ригу и далее через Швецию в США.
Представители иудейского религиозного течения Хабад неоднократно подавали официальное прошение в израильский Национальный мемориальный центр Холокоста Яд ва-Шем с просьбой признать Канариса праведником народов мира. Яд ва-Шем отказал признать Канариса праведником исходя из того, что есть основания полагать, что части абвера, подчинённые Канарису, причастны к убийству евреев. Однако израильский историк Дани Урбах в книге «Валькирия. Немецкое сопротивление Гитлеру» пишет, что ему не удалось обнаружить доказательства причастности Канариса к уничтожению евреев.