Which actor played the vampire Spike in Buffy the Vampire Slayer?

The story behind the answer

Which actor played the vampire Spike in Buffy the Vampire Slayer? James Marsters. American actor James Marsters played William “Spike” Pratt, the bleached-blond vampire who became one of Buffy’s most important recurring characters.

Spike first appears in the season 2 episode “School Hard” as a ruthless vampire who has already killed two Slayers. He initially arrives in Sunnydale hunting the Slayer and competing with Angelus, but the character gradually develops into an antihero and eventually becomes a complicated romantic partner for Buffy.

Marsters used a North London accent for the role, with informal coaching from his British co-star Anthony Head. Spike was initially intended to be a short-lived villain, but strong audience interest helped keep him in the series. Marsters ultimately became a main cast member during seasons 4 through 7.

A common mix-up is Marc Blucas, who played Riley Finn, or Seth Green, who played Oz. Nicholas Brendon played Xander Harris. Marsters also reprised Spike in the fifth and final season of the spin-off series Angel.

Source: Wikipedia · fact-checked Sept. 2026

Add question to a list

Choose a list to keep this question in: