Reduce die rolls
5E already tries to speed things up through simplification of math and reducing total die rolls, but there are still a few short cuts you can take.
Roll one initiative per group
Let the players choose one player (likely with the best initiative bonus) to roll for the player group, then you (as DM) roll once for the opponents using the highest creature mod. Then each side goes as a group, taking their action in whichever order they choose. This reduces the bookkeeping and such of delaying actions to go after another player and more importantly, allows you to skip a player that has not yet decided what to do (or is still looking up the rules relevant to their action) and come back to them when they are ready. Similarly, the DM can have the simpler monsters go while contemplating what the trickier monsters wish to do.
Combat becomes simpler as a result, which can be both a pro and a con, depending on how "realistic" or detailed your group likes to be. The main benefit with this change, really, is that the game isn't held up by the indecisive players, and no one has to worry about losing their place in the initiative order because they aren't ready or choose to go after another PC's action.
Eliminate foregone conclusions
If the creature that was attacked has 2 hit points left, does the attacker really need to roll damage? Look for such situations where it is overwhelmingly likely (even if not 100%) that a particular outcome will result from an action and simply choose that result without requiring a roll.
In the case above, even if the attacker did not have a modifier to damage that guaranteed 2 or more points of damage, the changes of the player rolling a 1 are quite small (25% on a d4, and less as damage dice improves). Where you place the cutoff is a matter of preference or expediency, but 90-95% likelihood might be a fair start.
Some people really enjoy rolling dice, so this particular option might not go over well with some players, so you might want to let the player choose whether or not they wish to roll.
It is also important to note that the rolls should bot be omitted in situations where the outcome is critical in some way - use prodigiously on mooks, but not on PCs or the Big Bad. If the target is just about to pull the lever that will release the Kraken or some such, even if the target is a mere minion, the outcome of the die roll could significantly color the action going forward, and so even if there is only a 1% chance of it surviving, make the roll. The suspense alone would be worth it.
In the same vein, if the battle is over and the PCs are simply mopping up bad guys, say as such "You guys quickly kill the remaining goblins and spend the next five minutes catching your breath." Its also worth simply having the goblins decide to flee or surrender once the battle begins to go badly for them, possibly eliminating a few rounds of combat.
Know your PCs
The GM should have the essential stats of the PCs available to him/her. AC, Saves, Passive Perception. This can speed up enemy attacks by not having to constantly consult with the PC on the result. You roll the dice, compare the result, state what happens, and move on. You may wish to also mention the resulting roll to the players just in case there is a circumstance in effect you forgot about, allowing the player to correct you if you made a mistake, but outside of that, it could really speed up the action on the DM's side of the table.
Additionally, if the GM is familiar with the PCs capabilities, he might even be able to take into account their likely actions or suggest actions in order to reduce the amount of time spent having the players fumble about or try to interject what their characters are doing. You can assume that the sneaky characters are being so, and if it is relevant, the DM can roll stealth only when it is appropriate rather than constantly calling for rolls or having characters volunteer them when the DM knows there are no enemies about. This can take away some player agency, so use with caution, but this can be especially golden when DMing a game with newer players.
If you trust your players, maybe have them all do their actions at once, rolling and doing the math, then you apply the results in the order they are ready to relay them to you. You won't be checking everyone's math or even know if they truly rolled what they say they did, so this does entail a fair amount of trust, but this can make the player side of the round go quickly. This works best if you are doing initiative per side as mentioned above.
However, with large amounts of enemies and NPCs, the DM side of the table is the one most in need of speeding up. While the DM does his/her thing, most of the players are not interacting, and might become bored. As such, being organized so that each monster's actions can be resolved as quickly as possible is perhaps the most critical thing to do.
- Have the stat blocks handy and have notes with relevant rules to reduce the amount of time spent digging through play books.
- Don't be afraid to make GM calls in order to avoid looking up obscure rules. Making a call that makes sense, even if it might not follow the rules as written, is okay if it can keep things moving smoothly.
- Use the default damage. Monster stat blocks provide the average damage next to the die rolls for each attack ("1d6+2(6)"). Simply use that number instead of rolling damage and performing the math.
- Fudge. Fudge a lot. One PC being attacked by 5 kobolds? Roll one attack with a bonus +2 per additional kobold, and if it hits, use the average damage given in the kobold stat block, multiplied by the number of points the target number was exceeded by, divided by 2. Or something. But you get the idea. Find creative ways to combine multiple creature attacks (for the minions at least) into a single die roll.
- Let the players control the allied NPCs, to a limited extent anyway. This gives them more to do and you less, so it's win-win.
- As Slagmoth mentions in the comments, using a party shot caller can help if players are constantly changing their minds as other players actions become apparent. It is also extremely useful if you have a mix of experienced and inexperienced players as it gives the more experienced players a chance to help the less experienced players with their strategies.
Pick and choose what works best for you and your group, but the spirit of the advice will likely help you find your own shortcuts in each specific circumstance as relevant to you.