Disclaimer: I have not run D&D 5e, but I have GM'd battlefield situations in both Pathfinder and Only War.
When you have such a huge number of moving parts to think about, the decision is the following: Where do you sit on the sliding scale of abstraction and detail?
Every table will have a different answer to this, so I will do my best to give you an overview of the scale, along with how I would handle your situation.
At one end, we have a fully-fledged tabletop wargame. You throw dice for every soldier and move blocks of infantry around. This is great fun if you enjoy strategic game play and knowing that you are in control, but it does not invoke that cinematic feeling you are after.
At the other end, the battle is a mere backdrop. The party is given a set of objectives, such as assassinating the commander of an enemy flank, sabotaging their siege equipment and felling a great beast that is laying waste to their allies. The party will definitely feel like they're in the thick of it, but unless you are able to narrate it well enough, they will not feel like they're actions matter beyond "Beat encounter, Clear battlefield-shaped dungeon".
I tend to take a combined approach, especially in situations where having a birds-eye view and complete control of your forces is unrealistic (pretty much any case where the players are not commanders of an army with tech level WWII and up). Your players should absolutely take part in the war council before the battle. Have them hash out a strategy with the other NPC commanders, and meanwhile, you decide the BBG's strategy. In a good battle, the players should be able to identify the Dramatic Question and a number of methods to reach it from both sides, typically involving key locations or individuals that need destroying or defending.
These two plans should determine the objectives of each unit on the field, and who (be they player or NPC) is leading them. This will tell you which units clash, and thus set the stage for the opening of the battle. When it is purely NPC-led units engaging, you can even pre-calculate* who will win and how long it will take to save time at the table. Remember, certain NPC commanders may choose to ignore their orders in favour of assisting their allies just like the players might.
Don't go too far with this buffering of dice-rolls though, because players are renowned for ruining your plans.
When a player eventually gets into combat (be it one you were expecting or not), I use a streamlined version of standard combat. Your regular run-of-the-mill orc is CR 1/2. He's hilariously outclassed by a level 9 PC, so don't run him like you would a normal monster. Forget about his HP, just bump his AC up by a couple of points. If your PC hits him, he's dead. Otherwise, he's unharmed. That might sound cheesy, but tracking a bunch of partially wounded mooks is way more hassle than it is worth. It'll speed up combat and make your players feel awesome when they look back and see this line they carved through an enemy unit.
At this point, I'll generally give the players the chance to attack the enemy unit's commander, typically with a few one hit mooks in the way to spice things up. You can even include a few allied mooks for the enemy commander to swat aside as well. Depending on how this battle goes typically determines how well the battle between the PC and enemy NPC's units go. So if your PC annihialtes the enemy commander, his allies will have done the same to the enemy soldiers. If the PC gets beaten to within an inch of his life, his allies are also trying to retreat. My players have yet to notice this.
If your players would prefer to avoid the enemy commander in favour of blowing chunks out of his unit (hello fireball), feel free to describe the enemy commander doing the same thing to your player's unit. Keep a tally of casualties on each side, and once one unit is is down to about 50% strength, have them start to run unless the commander can do something to stop it, be it successfully ordering them back into the fray, stopping the cause of all the damage or something else.
Then, just run each NPC commander intelligently. Have them react to the changing battlefield and reevaluate their objectives as things happen.
If you players want to know what's happening on the other side of the battlefield, or order the 3rd Cavalry Auxilia to stop chasing the fleeing archers and assist them in combat, ask them how they intend to do it. Maybe they use a Sending spell to give orders or some other clever solution.
*By pre-calculate, I mean you can literally just the run combat in your own time, write down what happened, then replay it at the table. Use your favourite means for this, be it Unearthened Arcana's Mass Combat, Pathfinders Mass Combat, GM fiat...