Most Pokémon battles are 1 versus 1, but there are such things as Double Battles. As you can probably guess, these battles are between two pairs of Pokémon.
There are actually two types of Double Battles, but they behave the same. In normal Double Battles, you control 2 Pokémon and fight 2 Pokémon, belonging to one trainer each. However, you can treat both trainers as one entity, because they're both the CPU after all.
Otherwise, there are so-called Multi-Battles that have 2 trainers controlling 1 Pokémon each, versus another 2 trainers also with 1 Pokémon each. These are just like normal Double Battles, but you'll only control 1 Pokémon, while you're assisted by a CPU partner.
An Unfair Advantage?
When playing in Co-op, battles are always Multi-Battles. But if facing a single opponent, they can only send out 1 Pokémon. So you can essentially gang up on most opponents. Ouch.
Flow of Battle
In Double Battles, you send out the first two Pokémon in your party. Like Single Battles, if any of your Pokémon have fainted, you'll send out the next available ones. Or if you only have one Pokémon that can fight, you'll just send out the one.
When the battle begins, you can choose an action for each Pokémon you control. Because you're facing two opponents, you can choose which of your opponents to target when using a move. Although some moves do not allow a choice.
Some moves can hit multiple Pokémon during Double Battles. You can generally tell by the wording. If a move says it hits "opposing Pokémon", it means both opponents in a Double Battle. If in doubt, check which Pokémon are targeted before confirming your move.
From there, battles play out just Single Battles, but with 2 more Pokémon added to the mix. As before, the Pokémon with the higher Speed stats will use their moves before the others. Then at the end of the turn, if any Pokémon have been KO'd, the affected trainer(s) must send out Pokémon to fill in the spaces.
Intricacies of Double Battles
Potentially, Double Battles can be a lot, lot more complicated than Single Battles. There's a reason it's the official format for the official VGC (Video Game Championships) held by The Pokémon Company.
By adding an extra Pokémon on both sides, the options have increased dramatically. Ignore everything for a moment, besides the fact there are Pokémon in battle. When choosing to attack, do you opt to focus both of your Pokémon's attacks on one of your opponent's Pokémon? Or do you spread out the attacks instead?
Say you focused on one Pokémon, you could KO it and immediately put your opponent in a disadvantage. However, your opponent could predict this and switch out the Pokémon with one that resists yours or--even easier--use Protect to negate your attacks. Meanwhile, your opponent's other Pokémon is free to attack yours or cause a status condition etc.
Basically, there's a lot more mind games involved--and that's just the first layer of them! What if you already predicted your opponent would use Protect on a particular Pokémon and you instead choose to focus your attacks on the other Pokémon? They'd completely waste their turn and potentially lose a Pokémon in the process.
Of course, none of this really applies to the main campaign, because the CPU isn't clever enough to use proper strategies, let alone play mind games. But it's something to think about at least!