The problem with Breach is that you know how it has to end. If you don’t know the story of FBI agent Robert Hanssen, and you don’t know that he’s currently serving a life sentence after being convicted of spying for Russia (and the former Soviet Union) for over two decades, then don’t worry, as the film’s opening scene is going to show you. We find out about the conviction, and from that point on, we know the exact road that the film has to take, thus removing any tension that there could be.

At least, that’s what I thought would be the case. Admittedly, there are some scenes in which the tension is zapped because of us knowing the conclusion, but there are just as many that still manage to make you breathe slower, make your skin crawl, and raise your heartbeat. This is a very engaging and, at times, thrilling spy drama. It’s way more about the journey — how Hanssen was captured and how he slipped in order to allow for that to happen — than the destination, but if you want a good movie about the case, director Billy Ray has given you one.

The film begins with a youthful FBI employee, Eric O’Neill (Ryan Phillippe), hoping to one day become an agent. That’s the end goal, he thinks, and once he gets there, life will be perfect. He gets pulled off his low-key job in order to become the “clerk” for Robert Hanssen (Chris Cooper). Hanssen, according to Eric’s superior (an underused Laura Linney), has some sexual misconduct that, if leaked, would cause a major embarrassment for the Bureau. If only he knew what was really going on.

As you likely know — or if you didn’t, should know by the opening paragraph — Hanssen wasn’t really being looked at for sexual deviancy; he was under investigation for twenty years of treason (although the sexual stuff is also true, we’re assured, in case we were wondering). However, the FBI has no proof, and once Hanssen retires in two months, they’ll have no way to charge him. They need to do this now, and Eric is going to be the one to get him to slip up, just once, so that he can be taken down. And if he does, he’ll probably be promoted straight to agent.

You know that, eventually, Hanssen slips up and is caught. You want to know how, and why, and if he does so because Eric simply outsmarts him, or because he’s finally gone crazy. Or perhaps he just grows to like Eric so much that, despite seeing through the ruse of “clerk,” allows Eric to bring him down. I’m still not even entirely sure what the master spy was thinking or the “why” behind it all, and I’ve seen Breach more than once.

The reason for not quite knowing is based partly on Cooper’s magnificent performance, and partly because of the way the character was written. Cooper plays Hanssen with all the intensity that you expect, cold and calculating, but also gives him a great deal of sympathy. And in the telling scenes when he begins to unravel, he absolutely nails the quiet transformation of the super-religious family man who has been betraying his country for a couple of decades.

The character is also multi-layered and complex. He grows to like Eric, slowly letting down his defenses and cold demeanor, yet is always thinking about the people around him. But then Eric mentions that his mother has Parkinson’s, and a few scenes later, Hanssen has printed off a few documents about the latest treatments. He shows his sympathetic side, and we begin to care about him. By the end, we don’t really want to see him get caught — if he is, in fact, committing treason — simply because of how good a person he is, or at least, appears to be.

Breach‘s other clear problem is that Ryan Phillippe cannot hold his own against Chris Cooper. Phillippe’s character is supposed to be the lead, and the man we root for. The intention is that we’ll want to see him bring in Hanssen, that we hope for him to get promoted and for his home life to get all fixed. But because Phillippe is a weaker actor, and because his character is nowhere near as complex — or even as sympathetic, somehow — as Cooper’s, that’s not what happens. We start cheering more for Hanssen, despite the film making no bones about whether or not he’s a traitor to his country.

This is really a one man show, and if a lesser actor was portraying Hanssen, it would fall apart. So much depends on Cooper here that it’s hard to imagine just what would happen if he wasn’t as good as he is, or if the character wasn’t written in such an intelligent manner. I suppose you’re here to learn about Hanssen anyway, so the filmmakers’ resources went more into him than anything else, but it’s astounding just what the film might have become without such a well-developed and performed character.

Breach is a rare type of movie. It manages to be quite thrilling despite you knowing the ending. You know how specific scenes will play out as soon as they start, and yet they excite you regardless. Chris Cooper’s performance drives the film forward, and without him making for a scary, yet sympathetic villain, we would have no movie. It’s not a biopic, and I’m sure much of it was dramatized, but this is one journey that is definitely worth taking.