The former London Mayor and foreign secretary will go head to head after Michael Gove was eliminated from the Conservative race in a fifth round ballot of MPs at Westminster.
Johnson topped the poll with 160 votes, Hunt had 77 and Gove third with 75. All 313 Conservative MPs voted - with one spoiled ballot recorded.
The result means that Johnson and Hunt will battle it out to succeed Theresa May in a four-week contest.
It also avoids any repeat of the bitter leadership spat three years ago between Gove and his former fellow Vote Leave chief.
In 2016, Johnson’s hopes of the top job dramatically imploded when his fellow Brexiteer decided to pull his support and run for No10 himself.
Just hours earlier, after coming third in the previous ballot, Hunt had made a last-ditch warning to fellow MPs not to repeat the “personal psychodrama” between Gove and Johnson.
Several Gove supporters felt that the extra three votes for Johnson was a tell-tale sign that his team had ‘lent’ votes to Hunt to knock out their candidate.
Hunt, who leapfrogged Gove to clinch second place in the final round of voting by MPs, swiftly claimed he was “the underdog” in the race ahead.
I'm the underdog - but in politics surprises happen as they did today. I do not doubt the responsibility on my shoulders - to show my party how we deliver Brexit and not an election, but also a turbo-charged economy and a country that walks tall in the world— Jeremy Hunt (@Jeremy_Hunt) June 20, 2019
Gove tweeted his own disappointment, saying: “Naturally disappointed but so proud of the campaign we ran. Huge thanks to my brilliant campaign team. It’s been an honour to be able to set out a vision for the future of our great country. Many congratulations to Boris and Jeremy!”
Johnson tweeted that he was “deeply honoured to have secured more than 50 per cent of the vote in the final ballot”, adding: “I look forward to getting out across the UK and to set out my plan to deliver Brexit, unite our country, and create a brighter future for all of us.”
Earlier, Sajid Javid was also eliminated in the fourth round ballot, receiving just 34 votes, while the environment secretary managed to leapfrog Hunt to clinch second spot.
Johnson and Hunt will now compete in a run-off of the party’s 160,000 or so members, with 16 separate hustings meetings up and down the country.
The winner will be announced in the week of 22 July, just before MPs go on their summer break, and will seek permission of the Queen to become prime minister.
ITV have announced the first head-to-head televised debate between the leadership candidates.
In a statement posted on Twitter, the broadcaster said: “ITV is pleased to announce that we will be hosting the first head-to-head debate between the two candidates hoping to be Prime Minister. The debate between Boris Johnson and Jeremy Hunt will take place on 9 July and will be hosted by Julie Etchingham.”
Johnson said: “Count me in! Really looking forward to a debate of ideas with my colleague @Jeremy_Hunt on @ITV.”