A sin is an act that breaks a moral or divine law, while a vice is a bad habit or personal failing someone keeps giving in to. Lying is a sin; a habit of lying compulsively could be called a vice. Think of sin as the deed and vice as the pattern behind it.
The core difference
Sin names a specific wrongful act judged against moral or divine law, while vice names an ongoing bad habit or weakness someone indulges.
- sin — an act that breaks a moral or divine law: He confessed his sins to the priest.
- vice — an immoral or bad habit, a minor personal failing: Gambling became his ruinous vice.
How to tell them apart
One way to keep them straight: a sin is usually a single act you commit, while a vice is a standing habit you're prone to. Someone might sin once by telling a lie, but if lying is simply part of their character, that pattern is closer to a vice.
The mix-up tends to show up in everyday, non-religious talk, where both words get used loosely for anything indulgent or wrong. Calling chocolate a ‘guilty vice’ works because it describes a repeated small weakness, not a single moral offence — that is where sin would sound too strong.