Rishi Sunak has called a General Election for July 4, saying in a speech the poll was "the moment for Britain to choose its future".
Yesterday commentators suggested the prime minister has gambled that improved inflation figures and a recovering economy will help him overturn Labour's 20-point opinion poll lead.
In a sign that security and the economy will be key battlegrounds, Mr Sunak said:
"This election will take place at time when the world is more dangerous than it has been since the end of the Cold War."
The "uncertain times" call for a "clear plan", he said.
A July election is earlier than many in Westminster had expected, with a contest in October or November widely thought to have been more likely.
Mr Sunak's announcement came after the Office for National Statistics said Consumer Prices Index (CPI) inflation slowed to 2.3% in April, down from 3.2% in March.
He said that was a "major milestone" for the country, with inflation now "back to normal" levels.
One reason for delaying might have been to allow Chancellor Jeremy Hunt to deliver another tax-cutting financial statement in the lead-up to the vote, but official figures revealed borrowing for April overshot forecasts, hitting £20.5 billion, suggesting he would have had limited scope for pre-election giveaways.