She said Britain needed certainty, stability and strong leadership following the EU referendum, the BBC reported.
Explaining the decision, Mrs May said: "The country is coming together but Westminster is not."
There will be a Commons vote on the proposed election on Wednesday – Labour have said they will vote with the government.
The prime minister needs Parliament's backing to hold a vote before the next scheduled date of 2020.
Explaining her change of heart on an early election, Mrs May said: "I have concluded the only way to guarantee certainty and security for years ahead is to hold this election."
She accused Britain's other political parties of "game playing", adding that this risks "our ability to make a success of Brexit and it will cause damaging uncertainty and instability to the country".
"So we need a general election and we need one now. We have at this moment a one off chance to get this done.
"I have only recently and reluctantly come to this conclusion. Since I became prime minister I've said there should be no election until 2020, but now I have concluded that the only way to guarantee certainty and security for the years ahead is to hold this election and seek your support for the decisions we must take."
Read alsoBrexit officially launched as EU's Tusk gets PM May's letter In a statement outside Number 10, Mrs May said Labour had threatened to vote against the final Brexit agreement, the Liberal Democrats had stated they wanted to "grind the business of government to a standstill", the SNP have said they would vote against the legislation that formally repeals Britain's membership of the EU – and "unelected" members of the House of Lords had vowed "to fight us every step of the way".
"If we don't hold a general election now, their political game-playing will continue and the negotiations with the European Union will reach their most difficult stage in the run up to the next general election," she said.