Soul usually refers to the immaterial part of a person that is believed to live on after death, or to the defining character of a place or thing, as in the soul of the city. Spirit overlaps with that sense but stretches much further, covering ghosts, courage and energy, and even distilled alcohol. If you mean enthusiasm or a supernatural being, reach for spirit; if you mean someone's inner, enduring self, soul usually fits better.
The core difference
Soul centres on a person's enduring inner self or the essential character of something, while spirit is the broader word, also covering ghosts, courage and strong drink.
- soul — the immaterial part of a person believed to continue after death: she believed the soul lives on after the body dies.
- soul — the essential character of something: the old market is the soul of the city.
- spirit — enthusiasm, energy or courage, or a supernatural being: the team played with real spirit despite being down two goals.
How to tell them apart
Both words trace an inner, non-physical part of a person, which is why they overlap so often. Soul leans towards something singular and enduring — the essence that survives or defines. Spirit leans towards something that can rise and fall, be roused or dampened, which is why we talk about team spirit or someone's spirit being broken.
The confusion tends to surface in idioms: a brave person shows spirit, not soul, while a place's true character is its soul, not its spirit. Spirit also has meanings soul never takes on, from a haunting ghost to a shot of whisky in the plural, spirits.