Of the 13 shortlisted cities, Yarolslavl and Krasnodar missed the final cut.
Moscow's 90,000-seat Luzhniki stadium, which will stage the final, and a 45,000-seat arena being built for local club Spartak Moscow were selected.
Fifa said there will be four geographical clusters: Moscow (central); St. Petersburg and Kaliningrad (northern); Nizhny Novgorod, Kazan, Samara, Saransk and Volgograd (Volga); and Rostov and Sochi (southern). Yekaterinburg was also chosen as a host city.
The announcement was made live on the 'Tonight' show of Channel One, Russia's free-to-air broadcaster, on Saturday evening.
At a news conference, Vitaly Mutko, the chairman of Russia 2018, said that the projected cost of the tournament was now Rbs600 billion ($19.3 billion), twice the original quote when the country won the right to host the World Cup two years ago.
However, he stressed that this figure was "a rough estimate" and that half of the money would come from the federal government.
Sepp Blatter, president of Fifa, said: "The announcement of the host cities is the first concrete step taken in the delivery of the 2018 Fifa World Cup. They make a decisive contribution to the success of the most popular sporting event. We look forward to a productive partnership on our road to the first Fifa World Cup in Eastern Europe,
"We are very pleased with the pace of the 2018 local organising committee from day one when they were awarded the hosting of the event in December 2010. Their achievements show their enthusiasm and commitment."
Mutko added: "I believe all of them [the 11 cities] broadly represent the cultural and historical diversity of our nation. At the same time, their energetic nature and connection with Russian footballing tradition will allow the Fifa World Cup to leave a powerful and sustainable legacy in all of them."
In December 2010, Russia beat England and joint bids from Spain-Portugal and Belgium-Netherlands to win the right to stage the World Cup for the first time.