Time Out says
This time, it’s the Archangel Michael (Paul Bettany) who’s gone rogue. Tired of humanity’s capacity for self-destruction, God has lost patience with those he made in his own image and the harbingers of the apocalypse – storm clouds, swarms of flying insects, a crazy old lady who spews obscenities and walks on the ceiling, a demonic ice-cream man – have reached an isolated diner in the Mojave Desert.
It’s here that the fate of mankind will be decided, as conflicted Michael tries to protect the unborn child of unmarried waitress Charlie (Adrianne Palicki) from time-serving Gabriel (Kevin Durand), who has come to do God’s bidding. Meanwhile, sundry minor characters are given nothing to do, besides explaining their tedious backstories to one another.
Eventually, just when it seems that we have entered a purgatorial limbo where time stands still, it becomes apparent that director Stewart’s way of wrestling with big metaphysical themes is to have the Archangels Michael and Gabriel beat the shit out of each other. So we get a punch-up between the lick-spittle Gabriel, armed with a CGI-enhanced mace, and the rebellious Michael, armed with a profound sense of moral righteousness. Celestial tosh of less than Biblical proportions.