“I don’t have to tell you about loss,” Nicole Kidman says softly to Ansel Elgort, whose character’s mother died years before, when a bomb exploded at the Metropolitan Museum in New York. We are well into The Goldfinch by then, but Kidman’s controlled, elegiac manner captures the tone that dominates throughout. John Crowley’s adaptation of Donna Tartt’s novel is beautifully photographed and eloquently told, but too emotionally muted for its own good.

More like this:

-The Personal History of David Copperfield: Four stars
-Venice Film Festival review: The King
-Two stars for Soderbergh’s disappointing The Laundromat

The film begins as the novel does, with a distressed, drugged-out Theo (Elgort) in a hotel room in Amsterdam. In voiceover, he says he dreamed of his mother for the first time in years. “Her death was my fault,” he says. It wasn’t. But in flashbacks that are lucidly woven into his story, we discover in bits and pieces why he is so tortured by grief and guilt. On the day of the explosion, they would not have been at the Met if young Theo (Oakes Fegley) hadn’t been suspended from school. 

Peter Straughan’s smart, intricate screenplay is faithful to the lengthy novel’s details, even though it re-orders the structure. The bombing itself is never explained or even given a specific date, but it deliberately evokes the post 9/11 feeling of living in an unsafe world. In keeping with the film’s veiled, gradual revelations, which reflect Theo’s memories, the bombing is shown in fragments as his history unfolds.  

In glimpses, we see striking images. Theo lies on the museum floor, covered in grey dust, surrounded by bodies and rubble. He stands, and encounters a dying older man who convinces him to steal the 17th-Century Dutch painting his mother had, coincidentally, just said was her favourite: Carel Fabritius’ The Goldfinch, a delicate image of a bird tethered to its perch. (The painting is real – the bombing and theft are fiction.) And the man gives Theo a ring to deliver to his partner in an antiques business, which is just the start of the boy’s secrets. Fegley is fantastically real as the young Theo, whose grief is expressed in his guarded, quiet manner.

At two and a half hours, the film is longer than it needs to be

Because his irresponsible father cannot be found, Theo is taken in by the lock-jawed Barbours, a large, wealthy family whose formal home is very different from the middle-class apartment he shared with his mother. As Mrs Barbour, Kidman is the picture of chilly repression, coolly effective in this minor role.

Theo doesn’t tell the Barbours when he visits the cluttered antiques shop, run by Hobie (Jeffrey Wright), who displays all the warmth Mrs Barbour lacks. There, Theo meets Pippa, the same girl who caught his eye at the Met. Instantly, she becomes the love Theo will never get over, as a boy or a man, although the film doesn’t convey that feeling with the urgency it deserves.  

Roger Deakins’s luminous cinematography shifts from New York’s rich colours to Las Vegas’s beige desert when Theo moves there with his resurfaced father, played by Luke Wilson with just the right combination of sincerity and slipperiness. Theo’s best friend in Las Vegas, Boris (Finn Wolfhard), introduces him to drinking, smoking, and eventually dropping acid. At two and a half hours, the film is longer than it needs to be, and 15 minutes could easily have come out of scenes that repetitively forecast the adult Theo’s cocaine habit.

Elgort has never shown the subtlety or depth he does here

When the boy experiences yet another tragedy, he runs away to New York and to Hobie’s shop, which becomes his home. Teasingly, the film has still not shown us The Goldfinch outside of the museum. Theo keeps the artwork wrapped in newspaper and regards it as a precious talisman, but he doesn’t need to look at it. In one of the film’s most affecting images, we see him curled up in a foetal position on the floor in Las Vegas, clutching the wrapped parcel to his heart.

As a young man, Theo is Hobie’s business partner, as proper and formal as if he had been raised by the Barbours. Elgort has been fine in films like Baby Driver, but he has never shown the subtlety or depth he does here. Theo’s smile is charming but enigmatic, that of someone guarding more secrets than ever. When he meets Mrs Barbour again after 14 years, Kidman eloquently makes the character a shade of her former self, now able to share Theo’s bereavement.

After years without contact, Theo also runs into Boris (now played by Aneurin Barnard), who brings him into a dangerous situation involving guns and more theft as the story circles back to Amsterdam. But the action scenes are unconvincing. The focus has always been, rightly, on Theo’s guilt, which now includes depriving the world of an artistic masterpiece.

Crowley is expert at literary adaptations, notably Brooklyn. But Brooklyn showed its heart on the surface, while the subdued tone of The Goldfinch suits its characters, who are all seeking redemption in a world of unremitting sadness. That strategy makes the film far more intelligent than it is moving.

★★★☆☆

Love film? Join BBC Culture Film Club on Facebook, a community for film fanatics all over the world.

If you would like to comment on this story or anything else you have seen on BBC Culture, head over to our Facebook page or message us on Twitter.

And if you liked this story, sign up for the weekly bbc.com features newsletter, called The Essential List. A handpicked selection of stories from BBC Future, Culture, Worklife and Travel, delivered to your inbox every Friday.