Nothing enhances a president's popularity like a nice war, and the terrorist attacks on 9/11 lifted Bush's approval ratings tremendously. (It is an odd thing about human nature. Bush hadn't done anything, but an unprovoked attack on the US made him look better. If a burglar breaks into a neighbor's house and steals their china, you'll regard the neighbors more kindly than before. I do not know why this is so, but it is.)
In addition to Afghanistan which had been sheltering Bin Laden, we invaded Iraq which was implicated in the attacks.
Well, they weren't really implicated in the attacks, but they would have been if they'd thought of it. The real reason was because Saddam Hussein was stock-piling weapons of mass destruction and we had conclusive proof.
Well, actually, there may not have been any weapons. Coalition troops did find some munitions containing mustard gas and serin gas, but these were pretty corroded and evidently were left over from the first Gulf War.
So the real reason was about Democracy. That's right. Hussein was a terrible dictator, and we had to depose him so his people could taste the fruits of liberty. That's what the war had been about the whole time.
Against this visionary leadership, Kerry never had a chance. This is because Kerry was a flip-flopper.
A side issue was Kerry's service in Vietnam and whether or not he'd exaggerated his valor. He'd definitely gotten three Purple Hearts, but maybe he just got lucky. Bush on the other hand served proudly with the Texas Air National Guard and it cannot be denied that no foreign power dared attack Texas during that time.
George Bush: 286
John Kerry: 251