Jensen Ackles was originally supposed to play Sam Winchester. Creator Eric Kripke explained the casting process: "[The pilot's director] David Nutter suggested Jensen because we knew him from Smallville. We met with him to play Sam, and we fell in love with [him]. And then Jared came in, and he was a really great Sam too. Looking back, we were such idiots to not see it . . . We had two great Sams and no Dean and you think it would be obvious to put one into the other role, but it was not obvious."
Jeffrey Dean Morgan thought he'd only be on for the pilot. He said, "There wasn't a lot for me to do. I remember thinking, 'Well, this'll be a job that I'll work a couple of days and go on to the next thing, because there's no way I'm gonna come back and be the father of Jared and Jensen.'"
For the record, he's got a point. Morgan was born in 1966, and Ackles was born in 1978. They're only 12 years apart!
Bobby Singer (played by Jim Beaver) was only supposed to be a single-episode character as well! Beaver said, "I was hired for one episode, 'Devil's Trap,' and no one ever said anything to me about another appearance."
Bobby Singer, by the way, is named after producer Robert Singer. Singer said, "Had I known he was going to last that long, I certainly would've objected a little more strenuously [to the name]."
Misha Collins thought Castiel was a demon until his first day of filming. "It wasn't until I did my first take of the character that Eric Kripke said, 'That was pretty good, but the truth is it's an angel, not a demon, so can you just switch it up?'"