Three matches in the 2030 tournament will also be held in Argentina, Paraguay and Uruguay to mark 100 years of the competition.
The hosts for both World Cups were confirmed at Wednesday’s Extraordinary Fifa Congress meeting following a vote.
All 211 of Fifa’s member nations were represented at the meeting over a video link.
The hosts for both tournaments, and of the 2030 centenary celebrations, were confirmed via two separate votes.
The first selected Uruguay, Paraguay and Argentina as the centenary hosts.
The second confirmed the three hosts for 2030, as well as Saudi Arabia being awarded the 2034 tournament.
Nations gave their votes by ‘acclamation’ – clapping in front of their cameras via their video links.
In all three decisions just one voting option was available, and prior to the acclamation Fifa’s secretary general Mattias Grafstrom said “all 211 [member associations] have effectively cast their vote prior to the congress”.
The English Football Association showed its support for the bids – which were also backed by the Scottish and Welsh FAs – after saying it received assurances that all fans would be safe and welcome at a Saudi World Cup.