People are overrestimating Lance! I just restarted my game and took out the whole elite four and Lance with Pokemon below lvl 45. Most of them starting at lvl 40 too!
My team: Feraligatr, Sneasel, Manectric, Toxicroak, Xatu and Sceptile. Feraligatr being the only one that wasnt lvl 40
You just gotta buy lots of full heals, hyper potion/full restore and revive! AND you gotta know how to use and when to use your Pokemon!
Will: Dark is good against everyone, Grass good against his Slowpoke, Fire good against his exeggcutor
Koga: Psychic good against most of his team + especially taking out Muk. Fire good against Venomoth, Ariados and Forretress [4x weakness!!!]
Bruno: Basically flying and Psychic. Water and Grass good against his Onix
Karen: Burn that Vileplume! Bug and Fighting should do great on all her Pokemon though, since they're hard to get, a Pokemon that can take down Umbreon and Gengar should do. Plus water on Houndoom
And them onward to Lance!
Lance: Ice and dragon on his dragonites! Electric, ice, steel and water on Aerodactyl, water, electric and rock x4 weakness on charizard too! Electric should take out his Gyarados in one hit.. LOOK OUT FOR OUTRAGE, his lvl 50 dragonite has it!
ALSO, that may not be ALL weaknesses, but thats all I remember + dont forget to check your weaknesses against their Pokemon. I always forget that and end up getting KO'd.