The Orpington MP said the reality of Brexit had “turned out to be so far from what was once promised” and the “democratic thing to do is to give the public the final say”.
He promised a new vote would not be a re-run of the 2016 referendum but ask people whether they want to go ahead with Brexit “now that we know the deal that is actually available to us”.
Downing Street responded by repeating its refusal to call another Brexit referendum.
Mr Johnson used a blog post to announce his resignation, writing that his brother Boris, the former foreign secretary who campaigned for Brexit, is “as unhappy with the government’s proposals as I am”.
“Indeed he recently observed that the proposed arrangements were ‘substantially worse than staying in the EU’,” Mr Johnson said.
“On that he is unquestionably right.
“If these negotiations have achieved little else, they have at least united us in fraternal dismay.”
Pressed on why Number 10 would change its mind, Mr Johnson told journalists outside parliament: “The deal that’s being finalised at the moment in Brussels and across Whitehall is so radically different to what was proposed in the referendum campaign.
“I think it’s really important that the public is given a chance to confirm that this indeed the extraordinary basis on which they want to leave the EU.”
Boris Johnson tweeted his “boundless admiration” for his brother, adding: “We may not have agreed about Brexit but we are united in dismay at the intellectually and politically indefensible of the UK position.
“This is not taking back control. It is a surrender of control.
“It does not remotely correspond to the mandate of the people in June 2016.”
Jo Johnson voted Remain in the 2016 referendum and is a former universities minister.
Prime Minister Theresa May has repeatedly ruled out a public vote on the final Brexit deal, saying in September that “to ask the question all over again would be a gross betrayal of our democracy – and a betrayal of trust”.
A Downing Street spokesman responded to the resignation: “The referendum in 2016 was the biggest democratic exercise in this country’s history.
“We will not under any circumstances have a second referendum.
“The prime minister thanks Jo Johnson for his work in government.”
A ministerial source told Sky News on Friday evening: “We haven’t got an offer yet, so this is a meaningless resignation. Quite why he chose to do it now is beyond me.”
Jenny Chapman, Labour’s shadow Brexit minister, said it was the 18th resignation from Mrs May’s government.
“She has lost all authority and is incapable of negotiating a Brexit deal within her own party, let alone with the EU,” Ms Chapman said.
“Theresa May is in office, but not in power.”
Stephen Doughty, a Labour MP and supporter of the People’s Vote campaign, added that Mr Johnson should be “applauded for having the courage of his convictions to say exactly what many others in government have been saying privately for months”.
But Labour leader Jeremy Corbyn dashed campaigners’ hopes he could back another poll.
Asked by German magazine Der Spiegel if he would stop Brexit if he could, Mr Corbyn said: “We can’t stop it. The referendum took place. Article 50 has been triggered.
“What we can do is recognise the reasons why people voted Leave.”
Sky News’ political editor Faisal Islam said: “It is terrible news for the government that Jo Johnson – who was helping to organise no deal planning for the trade border – resigns in this way, with an extra vote against the withdrawal agreement.
“He’s exactly who they would want and need to opt for withdrawal agreement to prevent no deal.”