"We need a general election and we need one now. We have at this moment a one-off chance to get this done ... before the detailed talks begin," said May in a policy U-turn that caught everyone off-guard.
Speaking outside her Downing Street residence in London, May warned that "division in Westminster will risk our ability to make a success of Brexit."
She said parliament would be asked to vote Wednesday to decide on whether or not to hold an election.
May justified her change of heart, saying: "I concluded the only way to guarantee certainty and security for years ahead is to hold this election."
The dramatic announcement caps nearly a year of tumult in British politics following the Brexit vote in June 2016 that included the resignation of May's predecessor David Cameron and her rapid rise to power last year.
A round of opinion polls over the Easter weekend also showed her Conservative Party far ahead of the main opposition Labour Party.