10 Movies You Didn't Realise You Were Following The Villain
6. Looper
In the case of modern classic sci-fi film Looper, protagonist Joe (Joseph Gordon Levitt) is literally both the hero and the villain.
Despite being a mob hitman at the start of the story, Joe is ultimately forced to find his inner-hero when it comes to facing off against a villain intent on changing the future by murdering a child.
That man just so happens to be Joe's older self (Bruce Willis), who after witnessing the murder of his wife at the hands of men sent by mobster the Rainmaker, travels back in time to kill the Rainmaker when he's just an innocent child named Cid (Pierce Gagnon).
After murdering another child he suspects to be the Rainmaker, Old Joe pays Cid a visit and very nearly kills Cid's mother Sara (Emily Blunt), which is implied to be the event which would cause Cid to become the Rainmaker in the first place.
In his big heroic moment, Young Joe then decides to shoot himself in the chest, immediately killing himself and causing Old Joe to blink out of existence, in turn saving Sara's life and ensuring Cid never becomes The Rainmaker.
And so literally, Looper's protagonist is both the hero and the villain within different pockets of time: we've been alongside a version of him all along, even if we didn't know it until much later in the movie.