Heroes don't have skirmishes with other villains exclusively - sometimes, one hero has to fight another, especially in anime. In fact, many epic scenes involve anime heroes fighting each other. They are often complex and nuanced, which makes anime heroes battling one another all the more interesting.
Often, hero vs. hero anime fights involve two objectively good people who want vastly different things. Other times, the argument is due to a misunderstanding. It's not always complicated, though - sometimes, heroes just want to test their skill level, like when Genos and Saitama of One Punch Man spar to see how strong Saitama truly is.
Whatever the reason, there's no denying that these epic anime battles are series highlights.
Bishamon and Yato are two gods with a complicated relationship. Bishamon hates Yato because he picked off her clan of Regalia. But Yato only committed this atrocity because the clan had become corrupted with blight. This made Bishamon's clan members a danger to Bishamon and themselves. Not understanding Yato's reasoning, Bishamon launches an assault on him with full intent to kill.
During their final battle, two people jump in front of Yato to save him from a death blow, and the true nature of what Yato did is ultimately revealed. Bishamon lets go of her grudge, and the two begin working together.
This fight only takes place in the 2003 version of Fullmetal Alchemist, so Brotherhood fans might not remember it. Edward Elric is tired of Roy Mustang's condescending attitude, so he challenges him to a fight. Edward demands to know the truth about the mysterious doctor who saved children in Xenotime.
At first, the fight seems lighthearted. Maes Hughes acts as announcer and spends half the time talking about how cute his daughter is. But the two soon get serious, destroying the whole area as they use powerful alchemy-based attacks. At one point, Edward even creates an ornate canon.
The fight ends when King Bradley breaks it up, but not before Mustang imparts an important lesson: Don't assume you know everything about your opponent.
Izuku and Katsuki fight a number of times over the course of My Hero Academia, but none stands out as much as this battle. Katsuki suspects something is going on between his rival and their mutual hero, All Might, and he's had enough of being kept in the dark. He's also emotionally scarred from the time he was kidnapped by the League of Villains and feels All Might's downfall as a hero is his fault. He expresses these turbulent feelings by challenging Izuku to a fight in the middle of the night. Izuku accepts, because he feels he owes his friend at least that much.
The fight itself is badass - the two launch everything they've learned about their respective quirks at each other. But what's really spectacular about this fight is that the two of them are communicating their feelings through the fight.
Afterward, All Might takes responsibility for neglecting Katsuki's feelings about being kidnapped and tells him the truth - that he passed his powers to Izuku and made him his successor.
There are points in Naruto when Sasuke Uchiha qualifies as a villain, but this comes after his showdown with Naruto Uzumaki. This battle - which takes place at the end of the first Naruto series - isn't about good vs. evil. It's about Naruto trying desperately to persuade his best friend to give up his desire to train under Orochimaru and get revenge on his brother. Naruto wants him to come back to Konoha, where he can lead a normal life.
The two fight as equals, using everything they've learned during their separation - including the cursed seal techniques Sasuke learned from Orochimaru. The scuffle ends with Naruto unconscious and Sasuke victorious. He decides not to kill Naruto, even though doing so could awaken his mangekyo and make him more powerful. Instead, he vows to gain power on his own.