O’Romeo Review: Shahid Kapoor roars, Triptii Dimri shines in Vishal Bhardwaj’s gritty tale
O’Romeo Movie Review: Shahid Kapoor and Triptii Dimri deliver some of their best performances in Vishal Bhardwaj’s dark drama. The film has its flaws, but they are minor and do not take away from the overall experience. Read the full review.
There is always excitement when Vishal Bhardwaj and Shahid Kapoor come together. They gave us Kaminey and Haider. Both films were intense and memorable. With O’Romeo, they reunite once again, and the expectations are high! This time, the story moves into the dark lanes of 90s Bombay. The film is inspired by a chapter from Hussain Zaidi’s book Mafia Queens of Mumbai. It tells the story of gangster Ustara and a woman named Afshan, who enters his life with a mission of revenge.
Let’s address the obvious question first. In recent times, many films seem influenced by the violent and brooding style popularised by Animal. Some feel that adopting a Vanga-style template has become the “safe” route. But O’Romeo does not fully follow that path. Yes, it is dark. Yes, it is violent. But it carries Vishal Bhardwaj’s distinct signature. It feels more poetic than loud.
O’Romeo’s storyline and performances
The film opens with a powerful introduction to Shahid Kapoor’s character, Ustara. He is a feared gangster who kills with a razor (the metaphor is sharp and clear). The razor is not just a weapon; it becomes a symbol of power and control. Shahid gets one of the most explosive entries of his career. He looks intense and dangerous. His body is covered in tattoos, and he often wears a simple ganji, giving him a raw, edgy look. A menacing smile spreads across his face, teeth bared. Bruises cover his body, showing the violence he faces, but also hinting at deeper emotional scars, inner conflict, and the rage that define Ustara.
Opposite him is Triptii Dimri as Afshan Qureshi, who is not a typical gangster film heroine. She is driven by revenge. She arrives in Bombay with a clear purpose and carries deep pain within her. Dimri delivers one of her strongest performances so far. Especially in the second half, she completely owns the screen. It is fair to say that Bhardwaj has utilised her talent to the fullest, as she is not reduced to just a stereotypical “bhabhi” tag but given a powerful and independent arc of her own.

Triptii Dimri in O’Romeo
Afshan’s mission connects her to Jalal, played by Avinash Tiwary. Jalal is cold, ruthless, and calculated. Tiwary undergoes a striking transformation for the role. He appears chiseled, and sports a bold head tattoo that adds to his intimidating presence. His performance gives the film a sharp edge. One only wishes he had more space in the climax. Yet, even with limited screen time in the final act, he leaves a strong impact.

Avinash Tiwary in O’Romeo
Nana Patekar plays Ismail Khan, an IB officer who operates in grey areas. Every time Nana appears on screen, he adds gravitas. His dialogues are sharp, his presence is commanding and he does not overact. He simply controls the frame.
Vikrant Massey and Tamannaah Bhatia make the most of their guest appearances, adding weight to the narrative despite limited screen time. As for Disha Patani, who plays Julie, she appears midway through the film and leaves a noticeable impression. Vishal Bhardwaj does not reduce her to just an item dancer or a glamorous distraction.

Shahid Kapoor with Disha Patani
The film’s biggest strength is its mood. Vishal Bhardwaj recreates 90s Bombay without overdoing nostalgia. The streets feel real. The tension feels personal. The background score blends well with the storytelling. The use of 90s songs adds flavour without distracting from the narrative.
The first half is gripping, and the dialogues are razor-sharp. The characters are introduced carefully, keeping in mind the love story between Ustara and Afshan that develops slowly. It does not feel rushed. The pacing in the first hour is strong. Then comes the second half, where lies suspense. While taking time, the O’Romeo allows scenes to breathe. Where speed is needed, it moves fast. Where emotion is needed, it pauses. However, the pacing in the middle portion slows down. Some viewers may feel the runtime. The film runs close to three hours. At times, it feels stretched. A few scenes could have been tighter.
Still, the last 40 minutes of O’Romeo are intense, where Triptii shines. She reminds us that this is Afshan’s battle. She is not saved by anyone. She fights her own war.
Shahid’s performance in the second half is powerful but slightly uneven. The emotional complexity of a gangster in love could have been explored more deeply. Some moments feel underwritten.
Vishal Bhardwaj treats violence like poetry; even the brutality has a rhythm and action sequences are stylish.
The music of O’Romeo, with voice by Arijit Singh and lyrics by Gulzar, has already connected with the audience. Singh’s voice touches the heart and suits the mood of the film perfectly. The action scenes are paired with energetic, thrilling tracks, some old, some new, making them even more exciting.
Supporting performances add depth. Rahul Deshpande, in a negative role, leaves a mark. Farida Jalal brings warmth in her brief appearance. The ensemble cast supports the narrative well.
O’Romeo is not flawless; the length may test patience. Some character arcs feel incomplete. The screenplay, while strong in parts, could have been sharper in transitions. Despite this, O Romeo works because of its performances and direction. The reunion of Vishal Bhardwaj and Shahid Kapoor once again creates magic, even if it is not as groundbreaking as Haider.
Final Verdict:
O’Romeo is emotional yet violent. It is long and drags in parts, but it rises on the strength of its performances and Vishal Bhardwaj’s assured direction. With powerful performances from Shahid Kapoor and Triptii Dimri, and solid support from the ensemble cast, the film delivers intensity despite its flaws. If you enjoy layered crime dramas with strong characters and a dark, poetic touch, O’Romeo is worth watching on the big screen.
Rating: 3/5
What's Your Reaction?