Unfortunately it's not currently possible to get Celebi since Pokemon hasn't given him out since I believe the 10th Anniversary event if I recall correctly. So currently the only way to get Celebi is by trading.
Chat with our AI personalities
You cannot catch Celebi unless you are using cheat codes or waiting for Pokemon events.
The only legitimate way to obtain Celebi and Mew is through a Nintendo event. In FireRed and LeafGreen you will need an event-only item to travel to the last two islands where you can catch those Pokemon
The only way to catch Celebi in Pokemon FireRed Version was to get the special Pokemon from a event. The only other way would be to cheat using an action replay device with a code.
You should use a "Timeball". Go in the battle, and fight 20 minutes, then you should catch without failing.
The only way to get a legit Celebi in Ruby/Sapphire/Emerald is to trade with someone who obtained one from the 10th anniversary Celebi event. If you're not too bothered about it being legit and more just want it for the Pokedex, then you'll have to cheat to get one using an Action Replay or Gameshark.:)