Depends on the time. I mean, Cloud was a pathetic piece of trout for most of the time Zack was alive. However, Cloud defeats Sephiroth a couple times, the first one most notable because he's impaled on the smurfing Masamune and just tosses Sephiroth into the mako reactor's depths. At their peak, I would say Cloud. Zack is determined though, and incredibly smart, so I don't think it will be too one sided!