The difference between a hero and an anti-hero lies in the virtues and nobility that a hero possesses and an anti-hero lacks. Though both characters are protagonists and accomplish similar feats, a sense of purpose is missing from the anti-hero.
The anti-hero is often a sort of "bad boy" character who, although he accomplishes good things and often has a good heart, does not rise to the level of exceptional character that the hero does. Baggage from the past, cowardice or an overall sense of selfishness are often parts of the anti-hero's makeup. Jay Gatsby from "The Great Gatsby" and Scarlett O'Hara from "Gone With the Wind" are examples of movie anti-heroes.The hero, on the other hand, usually acts for the greater good and, many times, with altruism. His motives are clear and good, and he is generally a person of great character.