The three countries presented a "United Bid" that promised to take football to a combined 500million people in North America and were awarded 134 votes to Morocco's 65.
Of the 211 Fifa member nations, 200 cast a vote at the 68th Fifa Congress in Moscow on Wednesday, with the winning bid needing a majority of 104.
Canada's men's team has not played in the World Cup since 1986 but traditionally, host countries do get to play.
President Vladimir Putin of Russian Federation on Wednesday, thanked FIFA president Gianni Infantino and the football community, for keeping politics out of sport, the day before the start of the soccer World Cup.
A total of 80 games will be played with 60 planned in the United States and 10 each in Canada and Mexico with the final played at MetLife Stadium in New Jersey, home to National Football League teams New York Giants and New York Jets.
Mexico has previously hosted two World Cups, in 1970 and 1986.
Prince Harry gives Meghan Markle some royal pointers
She became the envy of every designer in Britain when Meghan Markle picked her to create her royal wedding gown. Meghan Markle was attending the Trooping the Colour for Queen Elizabeth II's official birthday party.
They warned "the amount of new infrastructure required for the Morocco 2026 bid to become reality can not be overstated".
With just two bids, the trio bid (known as United 2026) was far and away the favorite. North America had to fend off a competing bid from Morocco, and fight through some rough seas.
If we're spitballing, it's hard to imagine the United States being forced to qualify for a World Cup in which it's the predominant host. "Together-in partnership with our Candidate Host Cities, the Member Associations, and FIFA-we will use this platform to unite the world around football and help create a new and sustainable blueprint for the future of FIFA World Cups™".
And when it comes to matters on the field, it's OK to dream of Hershey native Christian Pulisic - or maybe even Media-born Union defender Auston Trusty - playing for the United States in a World Cup at Lincoln Financial Field. The north African nation would have to build numerous stadiums required for the event.
Edmonton, Toronto and Montreal were the three Canadian cities designated in the bid to possibly host games in the 2026 tournament, which is expanding to 48 team, up from the current 32-team format.
To cut down on travel, the USA -led bid proposed having teams play all their games in the same regional areas.
"We believe strongly that this decision will be made on its merits", Cordeiro, the bid leader, told reporters.