He castigated the governments of Syria and Iran, urging them both to end what he called their support for terrorism.
Mr Bush also said the goal of a Palestinian state was within reach, and hailed the recent elections in Iraq.
He also promised to partially privatise the US pensions system – prompting booing from opposition Democrats.
Such signs of dissent are highly unusual during a State of the Union address.