Zapata was doomed because he was too far from the American border, and couldn't obtain arms. Villa could have done better if he'd listened to his foreign advisors, but his ego wouldn't permit him to do that. At Celaya he just threw away his cavalrymen, sending wave after wave against Obregon's barbed wire and trenches long after he should have understood that a frontal attack was hopeless. Then, having learned nothing from this catastrophe, he did the exact same thing again at Agua Prieta, driving his soldiers almost to the point of mutiny. Like Robert E. Lee, I think he might have believed in himself and in his men a bit too much, convincing himself that just one more charge would carry the day.
However, what if Villa been able to get hold of some tanks? Calles and Obregon would have had an ataque cardíaco!