
Shahid Kapoor: Part Romeo, part Haider but always an imperfectly perfect hero
Shahid Kapoor has built a career on characters that are difficult to admire and impossible to ignore. From Ishq Vishk and Kaminey to Haider, Kabir Singh and the upcoming O' Romeo, the actor has rejected the idea of the perfect Bollywood hero.

Shahid Kapoor has built a career on characters who are uncomfortable to admire. It is not easy to idolise the heroes he has played, which, honestly, flips the script because the film industry increasingly thrives on hero-worship. In his latest, O' Romeo, he plays a gangster who turns into a dark, passionate, obsessive lover. As with most of his films, it is not easy to fully resonate with what Shahid plays. It's almost as if he has a penchant for characters who are not just difficult, but intentionally corrupt and emotionally unavailable. And that says a lot about the actor.
Shahid is arguably one of the finest actors of his generation. He is also a complete package – style, acting, dancing – and he has mastered the art of not taking himself too seriously on screen. Take his confused callousness in his debut Ishq Vishk (2003), his self-destructive rage in Kabir Singh (2019), his fractured psyche in Haider (2014), or the moral slipperiness of Kaminey (2009). Shahid has consistently chosen roles where virtue is compromised and likeability is hardly guaranteed.
He makes you question his characters' choices. He wants you to observe their lifestyles, their warped ideas of the world, and their insistence on living somewhere between black and white. That is the kind of hero he prefers to play, and serve.
And for all you know, this has been highly intentional. As if the chocolate boy of Bollywood always wanted to enter his spice era, and has done so – gradually but decisively. Shahid seems to have rejected the traditional Bollywood hero template, one film at a time. That template which insists on the male lead being too good, too right, too unshakeable. His men on screen are flawed, aggressive, impulsive, selfish, broken and often wrong.
It increasingly feels like Shahid's real cinema interest lies in emotional messiness and moral ambiguity. While actors everywhere are busy reinventing themselves for a new generation, Shahid appears comfortable with his uncomfortable heroes. Over time, he has refined a specific kind of male lead – that reflects real contradictions: desire, insecurity, arrogance, vulnerability, love and violence, often co-existing within the same space. He does not seem to be seeking easy approval, or chasing universal affection.
Even when he appears on the small screen – his OTT debut Farzi – Shahid plays a deeply ambiguous man. Neither hero nor villain. Just someone suspended between right and wrong, ambition and guilt. A man trying to make sense of life one day at a time, without judging himself too harshly. Whether the writing of these characters ends up glorifying alpha male behaviour is a debate for another day. What is clear, though, is Shahid's consistent attempt to break the pattern, and the shallowness of the conventionally likeable Bollywood hero.
His latest collaboration with Vishal Bhardwaj in O' Romeo seems especially profound because Bhardwaj remains one of the few filmmakers who truly understands this side of Shahid. In Kaminey, Haider and now O' Romeo, Bhardwaj doesn't soften Shahid's edges or dress up his darkness. He allows the discomfort to exist. And Shahid, in turn, resists the urge to make these men more acceptable than they are.
That distinction is rare, especially in an industry where performances should be deeply layered. It's one thing to perform flawed characters and another to trust the audience enough to let those flaws remain unresolved.
Shahid Kapoor's career may not be built on ideal heroes, but definitely on characters that are uneasy, debatable and yet human. It's as if Shahid continues to find relevance in contradiction. Comfortable choice? Not really. Radical? Maybe.

