Fly

Kanto

You can find Fly off Route 16 (West of Celadon City). To find the location, go North from where you would find the Snorlax, then you will need to cut two bushes. There is 1 trainer battle, and then go North for the house from there.

Johto

You are awarded Fly after you beat Chuck at Cianwood Gym

Controls

You can find the correct way to Fly in the Controls section.