Prior to seeing Batman v Superman: Dawn of Justice — and can a brother buy an “s” or a period for that title? — I was skeptical. Could director Zack Snyder and his filmmaking team make a coherent narrative out of their bald-faced attempt at keeping up with Marvel in the ongoing war for your moviegoing dollars?

The previous Superman movie, Man of Steel, was tone-deaf, laying waste to much of Metropolis and its residents without so much as a second thought. Ben Affleck’s taking over Batman’s cowl and cape from Christian Bale is also questionable. Could they really overcome their previous missteps and deliver an entertaining film?

The answer is yes, with a few caveats. Snyder and screenwriters Chris Terrio and David S. Goyer have created a world in which a rivalry between the two superheroes at least makes narrative sense. In fact, Batman’s anger at Superman (Henry Cavill) almost seems to be an apology from Snyder for Man of Steel, as it stems from Superman’s climactic fight with General Zod (Michael Shannon).

There’s little nuance to anything in the movie, as the filmmakers prefer to show their cards up front and let them fall where they may. Explanations for everything from Batman’s dinosaur voice to how close Metropolis and Gotham City are to each other are laid bare, leaving little mystery to anything in the story.

With multiple characters to serve, including Lois Lane (Amy Adams), Lex Luthor (Jesse Eisenberg), and Diana Prince/Wonder Woman (Gal Gadot), the danger existed that there would be too much going on for the film to be enjoyable. But the filmmakers keep things relatively simple, and the performances by the main actors are more than enough to sustain momentum.

The simplification of the plot does lead to more than a few “just go with it” moments, as characters luckily — magically? — turn up at the right place at the right time. But because it is a superhero movie, you need to be willing to turn up your sense of disbelief if you’re going to get any enjoyment out of it at all.

And somehow, much to my surprise, the on-the-nose nature of the film is superseded by the sheer entertainment value, especially the action scenes.

Two elements in particular stand out. Eisenberg is perfectly cast as Luthor, giving him an uneasy smarminess that makes the character one of the few reasons to smile in the movie. Meanwhile, Gadot doesn’t get a lot to do, but when it comes time for her big moment, it’s as iconic an entrance as anyone could hope for, replete with her own rockin’ theme music.

As for the two big guys, both Affleck and Cavill give solid, if not earth-shattering, performances. They’re hamstrung a bit by the limits of the story and their characters, so there’s never a feeling of rooting for one over the other. But they do nothing to embarrass themselves and prove that their continued inhabitation of the roles should be something to anticipate, not dread.

Yes, Batman v Superman is almost unrelentingly dark, making the two-and-a-half hour movie tougher to get through than the lighter-toned Marvel movies. But it ultimately earns its superhero stripes thanks to great performances and some truly knockout action scenes.