Giovanni is leader of the infamous Team Rocket, the true antagonists of the Main Storyline. Even though you will encounter Team Rocket, as well as Jessie and James, on a number of occasions throughout your journey to becoming the next Kanto Region Champion, you will only come across Giovanni on three separate occasions. Each time you do encounter Giovanni, however, you will have to battle him.
You will first meet Giovanni at the very end of the Rocket Hideout, directly after Team Rocket killed a Marowak back in Lavender Town. Giovanni will be impressed how your trainer has gone so far to save Cubone, the child of the Marowak they killed, that just so happened was in their possession. He will battle you with his Persian and Rhyhorn, both of which will be at Level 35. Once he has been defeated, Giovanni will hand over the Silph Scope you need in order to save Mr. Fuji back in Pokemon Tower.
The next time you'll encounter Giovanni is at the top of the Silph Co Building in Saffron City. Team Rocket will have taken over Silph Co, and Giovanni will be trying to force the company's President into handing over the Master Ball. When Giovanni notices you, he will insist you stay out his way, challenging you to a battle in hopes of forcing your trainer to comply. He will battle you with his Persian, Rhyhorn and Nidoqueen, all of which will be at Level 39. By defeating him, Team Rocket will relinquish hold of Silph Co and you will receive the Master Ball from the Silph Co President.
The last and final encounter you will have with Giovanni is in the Viridian City Gym, as he is actually its Gym Leader. Giovanni will mention how the Gym is his New hideout for now, at least until he can restore Team Rocket to its former glory. Since he is the Gym Leader, he will battle you for your final Gym Badge. He will battle you with Dugtrio, Nidoking, Nidoqueen and Rhydon; all of his Pokemon will be at Level 49, except for his Rhydon who will be at Level 50. By defeating Giovanni, you will receive your final Gym Badge and Team Rocket will disband for good. Giovanni will then go into hiding, swearing to dedicate his life to Pokemon Training.