What you need to do is after defeating team rocket in mahogany town, fly to goldenrod city and go to the radio tower (but first go to the underground path and talk to the team rocket guy) after that go into the radio tower and then your rival comes in and then yeah. After go upstairs and then defeat all the rocket grunts, but warning there is also the other guys. And then when you finaly finish defeating team rocket they break up and then a guy comes up and then gives you the silver wing. There you go!
Defeat team rocket at the radio tower after getting the mahogany gym badge