Theresa May decided to call a snap general election because she feared Jeremy Corbyn was on the verge of resigning, Downing Street sources have said.
There had been growing expectations the Labour leader would stand down after what was predicted to be a bad performance for the party in local elections on 4 May.
Rather than later risk facing Labour under a new and potentially more popular leader, the Prime Minister decided to call the impromptu vote, even after months of giving reassurances she would not do so, sources inside Number 10 told The Financial Times.
Ms May also took the decision against a backdrop of ever more promising polls.
At the weekend a ComRes survey for The Independent gave the Conservatives a 21-point lead over Labour, giving the party their greatest lead while in government since 1983.
Some seat projections suggest Mr Corbyn’s party will fall from its current 229 to as low as 160, while the Tories could close in on 400.
Election strategist Lynton Crosby, who led the Tory campaign to victory in 2015 and will guide the coming one, had been seen at Conservative HQ in recent weeks and had advised the Prime Minister that the conditions for an election could not be any better, sources told the newspaper.
In the hours after Ms May called for the election, two Labour MPs announced they would not contest their seats. Tom Blenkinsop said he would stand down from his Middlesbrough South seat due to “significant and irreconcilable differences with the current Labour leadership”, while former shadow chancellor Alan Johnson also said he would not stand and that it would be "best for the party” for him to quit.
Despite Labour's poor showing in the polls, the party says it has financial reserves, that it is prepared for an election, and that it will present a viable “alternative” government to the Conservatives.