I see your point, but Bowser is smarter and could figure out that he can hunker down in his spikey shell and then Charizard would run right into it and die. Plus he is very heavy, so just by standing his ground forcefully, he could wear down a lot of Charizard's stamina. Bowser also has much more in his arsenal than fire balls. He has an army of koopas, who he could force back into their shells and then throw at Charizard. Because he is very, very strong, he could also make the shells fly like thunder at Charizard and hit his wings, effectively rendering his wings useless knocking him clean out of the sky, thus allowing him to get underneath Charizard and then hunker down in his shell, thereby killing Charizard, or Bowser could also do that attack where he spins in his shell while somewhat ascending, damaging anybody who touches him while he is doing it. Also, one of Charizard's biggest weaknesses is that if the flame on his tail goes out, he is a goner. Bowser could play on this weakness by shrouding himself in smoke from koopas constantly going faster as they knock each other around repeatedly and then sneaking up on Charizard, then dousing the flame by throwing a koopa she at it at thunder-like speed. He is, again, super-strong. The wind would blow the flame right out. Or Bowser could just bite on it and his saliva would douse the flame. Therefore Bowser would win.