Новелла написана от первого лица.
Умирающий «жертвой самого безумного из всех подлунных видений» герой рассказа, не желая называть читателю своего настоящего имени, т.к. оно «внушило людям слишком сильное презрение, ужас, ненависть», представляется Вильямом Вильсоном. Он рос своевольным ребёнком с «дурными наклонностями». Поступив в школу, он пылкостью, восторженностью и властностью своей натуры подчинил себе всех одноклассников. Всех, кроме одного. Исключением оказался ученик, не состоявший с героем в родстве, но с точно таким же именем, как у него. Удивительно, но оба Вильяма Вильсона родились 13 января 1813 г. и появились в школе в один и тот же день! Вильям-герой боялся своего тёзки, ведь тот соперничал с ним в учёбе и играх и постоянно превосходил его. Но этой конкуренции не замечал никто, за исключением самого героя.
Вильсон-тёзка копировал Вильсона-героя абсолютно во всём: в речи и походке, в одежде и поступках. Подражал он даже голосу, но, видимо, по причине слабых голосовых связок, мог говорить только еле слышным шёпотом. «Своеобразный шёпот» одного Вильсона стал «эхом» другого. Оба молодых человека были неразлучны. «Превосходный этот портрет» «мастерски воспроизводил дух оригинала» и старался всячески навредить ему. Его вмешательство в дела героя зачастую выражалось в непрошенных советах, которые тот выслушивал с отвращением, растущим год от года. «Ни один его совет не мог бы привести меня к тем ошибкам и глупостям…», – признаётся впоследствии Вильям Вильсон. Один раз ему даже показалось, что со своим «самонадеянным» соперником он был уже когда-то давным-давно знаком.
«Однажды ночью, в конце пятого года пребывания в пансионе» герой прокрался в спальню своего тёзки – каморку, изначально предназначавшуюся под чулан, – «чтобы сыграть с ним одну из тех злых и грубых шуток», которые раньше не удавались. Вильям Вильсон поднёс лампу к лицу соперника и замер от изумления:
Охваченный ужасом, Вильсон-герой «в тот же час покинул стены старого пансиона, чтобы уже никогда туда не возвращаться».
Следующие три года, будучи студентом Итонского колледжа, он предавался «прискорбному распутству» и «бросал вызов всем законам». Во время одной из «сумасбродных попоек» с «самыми беспутными приятелями», где «вино лилось рекой, и в других, быть может, более опасных соблазнах тоже не было недостатка», слуга Вильяма Вильсона доложил, что к нему пришёл некий человек. Обрадованный герой «нетвёрдыми шагами» вышел в прихожую и увидел юношу примерно его роста и в таком же сюртуке. Лица в полутьме он разглядеть не смог, но мгновенно отрезвел, когда гость подошёл к нему, схватил за руку, прошептал прямо в ухо два слова «Вильям Вильсон» и исчез. Первое время после этого происшествия герой начал наводить справки о своём старом знакомом, но узнал лишь, что в тот самый вечер, когда он сбежал из пансиона, уехал оттуда и его двойник.
В скором времени герой переехал жить в Оксфорд. Обеспеченный родителями щедрым годовым содержанием, герой, «с презрением отбросив все приличия, кинулся в омут разгула» и «пал столь низко, что свёл знакомство с профессиональными игроками, перенял у них самые наиподлейшие приёмы». Желая увеличить свой и без того огромный доход «за счёт доверчивых собутыльников», Вильям Вильсон разорил некоего лорда Гленденнинга, богатого и «молодого выскочку из новой знати». В ту же минуту на пороге комнаты появился некто, примерно одного роста с Вильсоном и в таком же плаще, как у него, с целью открыть присутствующим истинное лицо героя: «Благоволите осмотреть подкладку его левой манжеты и те пакетики, которые, надо полагать, вы обнаружите в довольно поместительных карманах его сюртука». Затем незнакомец исчез – так же неожиданно, как и появился. Несколько человек тут же грубо схватили Вильсона, стали обыскивать, и в подкладке его рукава нашли колоду шулерских карт. На другое утро, «в муках стыда и страха», Вильям Вильсон спешно покинул Оксфорд.
Но бежал он напрасно! Его «злой гений, словно бы упиваясь своим торжеством», находил его и в Париже, и в Египте, и в Вене, и в Берлине, и в Москве! Вильсон не мог понять, кто этот человек, откуда он и что ему нужно.
Вильям Вильсон решил во что бы то ни стало освободиться из-под гнёта своего поработителя.
Во время карнавала в Риме он отправился на маскарад в палаццо одного «одряхлевшего» неаполитанского герцога в надежде соблазнить его молодую, весёлую красавицу-жену. Заметив её в толпе, Вильсон поспешил к ней. В этот миг кто-то взял его за руку, и он услышал «проклятый, незабываемый, глухой шёпот». Это был другой Вильям Вильсон, но в точно таком же наряде. Разъярённый герой вызвал своего двойника на дуэль – «и он ничуть не сопротивлялся». Их поединок длился недолго: в считанные секунды Вильсон-герой прижал Вильсона-тёзку в стене и «с кровожадной свирепостью несколько раз подряд пронзил его грудь рапирой». На мгновение герой отвёл глаза от умирающего противника, а вновь взглянув на него, оцепенел от ужаса:
Смертельно раненный Вильям Вильсон теперь говорил не шёпотом. Герою показалось, будто следующие слова произнёс он сам: «Ты победил, и я покоряюсь. Однако отныне ты тоже мёртв – ты погиб для мира, для небес, для надежды! Мною ты был жив, а убив меня, – взгляни на этот облик, ведь это ты, – ты бесповоротно погубил самого себя!».