The Prime Minister had repeatedly denied that she would call an election before the next scheduled poll in 2020.
But following a Cabinet meeting at Downing Street she said she would go to the country this year.
Speaking outside Number 10, the Prime Minister said the Cabinet had agreed to call an early election.
The move takes place against the backdrop of the country's decision to leave the European Union in last year's referendum.
Justifying the decision, Mrs May said: 'The country is coming together but Westminster is not.'
She said the 'division in Westminster will risk our ability to make a success of Brexit'.
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.'
Mrs May said she was acting now because of the opposition in Parliament to the Government's plans for Brexit.
'Our opponents believe because the Government's majority is so small that our resolve will weaken and that they can force us to change. They are wrong,' she said.
'They under-estimate our determination to get the job done and I am not prepared to let them endanger the security of millions of working people across the country, because what they are doing jeopardises the work we must do to prepare for Brexit at home and it weakens the Government's negotiating position in Europe.'
Without a snap general election, Mrs May said 'political game-playing' in Westminster would continue and lead to negotiations with the EU reaching their 'most difficult stage' in the run-up to the previously scheduled 2020 vote.
'Division in Westminster will risk our ability to make a success of Brexit, and it will cause damaging uncertainty and instability to the country,' she said.
'So we need a general election and we need one now.
'Because we have at this moment a one-off chance to get this done, while the European Union agrees its negotiating position and before the detailed talks begin.'
Mrs May suggested she reached her decision over the Easter parliamentary recess, following previous denials that she would call an early vote.
'I have only recently and reluctantly come to this conclusion,' the PM said.
'Since I became Prime Minister I have said that there should be no election until 2020.
'But now I have concluded that the only way to guarantee certainty and stability for the years ahead is to hold this election and seek your support for the decisions I must take.'
The Fixed-Term Parliaments Act sets the general election date as the first Thursday in May every five years, meaning 2020 was the next expected contest. But Mrs May can call an early election if two-thirds of MPs in the Commons vote for it and Jeremy Corbyn has previously indicated Labour would support such a move. In March Downing Street strenuously denied Mrs May would call a vote before 2020. A Number 10 source said the Prime Minister has been 'clear and consistent in her position: that she does not think there should be' an early general election, while another added: 'It's not going to happen.' But with a Commons working majority of just 17, and a healthy opinion poll lead over Labour, senior Tories had suggested Mrs May should go to the country in order to strengthen her Parliamentary position. Such a move would also give a mandate both for her leadership and her negotiating position on Brexit before talks with the European Union start in earnest.