Senator Kerry started where he left off in the first debate. He was aggressive with the president, standing and addressing him directly.
And President Bush was much better, much more assured, much more presidential.
By Justin Webb
BBC correspondent in St Louis, Missouri
He managed to control his temper and state his arguments more directly and clearly.
George W Bush was more assured than in the first encounter
Polls show that John Kerry's strong performance in the first debate have allowed him to close the gap with President Bush, and the second, more evenly matched, debate will keep the race close going into the last head-to-head next week.
President Bush turned in a performance that will reassure and re-energise his supporters.
He tried some humour and, although it did not always work, just the fact that he tried a lighter touch suggests that he was more confident.
There were a couple of times where he got a little testy, but he managed to keep his temper under control.
And that was very important after the first debate, when TV cameras showed him scowling.
And Mr Kerry certainly did not go downhill in comparison with his performance at last week's debate.
The president raised his game, and Mr Kerry kept to a very high standard
He was aggressive with the president, but certainly never angry.
He was quite surprisingly able to empathise with members of the audience.
This was thought to be one of Mr Kerry's real difficulties - that he was not particularly good in the town hall format.
But he has been doing a lot of it recently, and he looked as if he was very comfortable.
The first part of the debate again focused on Iraq.
Both candidates used the Iraq Survey Group report on the hunt for Iraq's weapons of mass destruction to defend their positions on the war.
John Kerry found an effective way of getting his message across
But Senator Kerry's most effective attack line was if the state of Missouri was regarded as a nation, it would be the third largest contributor to the forces in Iraq.
It was a way of showing the American people the fact that the coalition in Iraq is very much American dominated.
President Bush often talks about the number of nations involved, and Senator Kerry struggles to find a way of pointing out Americans that that involvement is quite minor in a lot of cases.
One of the president's high points was on the question of abortion.
He was effective not just in appealing to those who are worried about abortions, particularly late-term abortions, but more importantly in suggesting that he is a man of principle with strong beliefs.
Senator Kerry gave quite a long, detailed answer on abortion, and President Bush was able to pounce and say that he did not understand Mr Kerry's answer.
Unlike last week, the president seemed to accept the right of the challenger to be tough.
I was impressed at how Senator Kerry managed to be quite brutal in his attacks but at the same time say how much he respected the president and his view.
He is obviously well aware that the American people do not approve of all-out attacks on the president's character.
Senator Kerry did enough to keep himself in the running and perhaps a little more than that.
President Bush's core supporters will be very pleased to see him back on better form, and his performance might energise his base.
As to appealing to the wider public, there was no knock-out blow.
We go into next week and the final debate, still neck-and-neck.