The level of competence in his organization aside, Giovanni is a genuinely intimidating man, though more so in the games than in the anime. He’s the most dangerous kind of criminal, a charismatic and goal-oriented one. He knows precisely what he wants, how to get it, and who needs to be stepped on to do so. That ruthlessness translates into his skill as a Pokémon trainer, but you can still beat him. Here’s how to beat Giovanni in Pokémon GO, specifically in his May 2021 incarnation.

Giovanni will come at you with the following lineup:

  • Persian
  • Kangaskhan, Nidoking, or Garchomp
  • Shadow Moltres

Taking the cross-section of these Pokémon’s particular weaknesses into account, you should bring along a Fighting type, an Ice type, and a Water type at the bare minimum.

How to Beat Giovanni in Pokémon Go (May 2021)

Persian is a pure Normal type, and nothing to write home about besides. You can make quick work out of it with a strong Fighting type like Machamp or Conkeldurr. The same goes for Kangaskahn, as it is also a pure Normal type, which will also make the fight easier should Giovanni decide to use it.

Nidoking and Garchomp, as a Poison/Ground type and Dragon/Ground type, respectively, share a weakness against Ice type moves. For this reason, our old friend Mamoswine is once again the Pokémon of the hour, as it has no weaknesses to either Nidoking or Garchomp’s kits, and can fire back with double Ice moves.

Shadow Moltres is where you want to be most prepared, as this thing is gonna come at you hard and fast with high DPS Fire and Flying-type moves. A Water-type like Swampert or Blastoise would work for exploiting a weakness, with the added benefit of also working against Nidoking and Garchomp. If you want to play it a bit riskier, though, you could also try packing a Rock-type like Rhyperior or Golem to go for a double weakness exploitation against Shadow Moltres’ Fire/Flying, though at the cost of only being able to use that Pokémon against Shadow Moltres.