UEFA's executive committee announced the decision on Friday after Russia's invasion of Ukraine, which has drawn worldwide criticism.
Russia's Gazprom Arena in Saint Petersburg was due to host the Champions League final on May 28 but the event will now take place at the Stade de France in Paris.
This will be the first time the deciding game for Europe's premier club competition will be played in France since Barcelona beat Arsenal 2-1 at the Stade de France in 2006.
A UEFA statement said: "The UEFA Executive Committee today held an extraordinary meeting following the grave escalation of the security situation in Europe.
"The UEFA Executive Committee decided to relocate the final of the 2021/22 UEFA Men's Champions League from Saint Petersburg to Stade de France in Saint-Denis. The game will be played as initially scheduled on Saturday 28 May at 21:00 CET.
"UEFA wishes to express its thanks and appreciation to French Republic President Emmanuel Macron for his personal support and commitment to have European club football's most prestigious game moved to France at a time of unparalleled crisis.
"Together with the French government, UEFA will fully support multi-stakeholder efforts to ensure the provision of rescue for football players and their families in Ukraine who face dire human suffering, destruction and displacement."