U.S. Senator John McCain of Arizona defeated J.D. Hayworth, a former congressman, in the Republican primary Tuesday night. U.S. Senator John McCain of Arizona defeated J.D. Hayworth, a former congressman, in the Republican primary Tuesday night. (Matt York/Associated Press)

Arizona Senator John McCain routed conservative challenger J.D. Hayworth on Tuesday in the Republican primary in what could be the final campaign for the former GOP presidential nominee.

McCain spent more than $20 million to beat back an aggressive challenge from Hayworth, who relentlessly attacked the senator for his shifting stance on immigration and sought to tap into the anti-incumbent rage that has taken down other lawmakers in 2010.

Two years after his bitter loss in pursuit of the White House, the 73-year-old McCain now begins a final 10-week push and will be the heavy favourite. The Democratic race was still undecided, but whoever emerges will have an uphill fight in heavily conservative Arizona.

Hayworth, a former congressman and talk-radio host, had hoped to win over conservatives frustrated with McCain's famous willingness to buck his party and work with Democrats on issues such as campaign finance, immigration and climate change.

Four Democrats are vying to take on McCain, none with his broad name recognition.