My money is on Snorlax. Why, you ask?
Well for one, Charizard can't use one of his strongest attacks on Snorlax: Seismic Toss. Remember the Silver Conference, when he tried to pull off that move on Gary's Golem, and it failed? Professor Oak said something along the lines that Golem's weight was second only to Snorlax. Thus, no Seismic Toss.
Charizard's flame thrower can be blocked by Protection, and as Snorlax demonstrates during a Battle Frontier episode, he can use that move.
Charizard's main advantage is obviously his ability to fly, so Snorlax would either have to repeatedly use Hyper Beam (which takes time to recharge sometimes, depending on the episode you watch) which Charizard could easily dodge, or wait for Charizard to come in closer to perform a Body Slam of Mega/Ice Punch (Snorlax has used both types in the past).
Charizard's Dragron Rage attack could probably be stopped with a Hyper Beam, so it would never hit (although the force of the explosion would probably still do damage to both).
It would be a long battle, that's for sure, because both Pokemon have demonstrated amazing endurance in battle, but I think Snorlax just has too many ways he could block or stop an incoming attack from Charizard.
That's all just my opinion though, and I'm not really that impartial either (Snorlax is one of my favorite Pokemon). :)