A story protagonist is not always a hero and an antagonist is not always a villain, even though the terms are often used interchangeably. A protagonist is the character that the story is about. An antagonist is a person or force that opposes the protagonist. An example of an opposing force is a storm.
A story may have more than one protagonist and more than one antagonist. A romance has two protagonists and an action story will have multiple antagonists.
A protagonist is not necessarily a hero and an antagonist is not necessarily a villain. A protagonist can even be a villain. Protagonists can be anti-heroes or heroes but they don’t have to be. An example of a protagonist that is also a villain is Hannibal Lector, the book is about him and he is a sociopath. The hero of that story is FBI agent Clarice Starling.
A hero is someone who behaves heroically, he or she will put the concerns of others above themselves and take actions that are risky and extraordinary in order to accomplish a goal that is morally right, good or justified by the story circumstances in the eyes of the author and the audience. A hero is the good dude that saves the day. But (s)he may not be the main person the story is about, but most of the time they are.
A villain opposes the hero or protagonist and commits acts of self-interest that have negative results for others, a villain behaves in ways that are perceived by the audience and the author as morally wrong, evil or unjustified by the story circumstances. Put simply the villain is the bad dude. An antagonist is not necessarily a bad dude.
An anti-hero is someone who starts off behaving like a villain but ultimately behaves like a hero, putting the needs of others before their own self-interest, albeit usually reluctantly.