France broke the deadlock in the 51st minute as French defender Samuel Umtiti found the net by a header. French forward Antoine Griezmann had taken the corner before Umtiti's goal.
Belgium looked for an equalizer in the remaining time but France defended their goal very well, frustrating the Belgians.
Near the end of the game French midfielder Blaise Matuidi had to go off due to injury.
Also known as "Les Bleus" (the Blues), France bagged the final ticket for France’s first final since 2006.
France are now waiting to learn their opponents in the final to be held on Sunday, July 15.
Meanwhile Belgium will play a third-place playoff on Saturday.
In the other semifinal match to be held on Wednesday, Croatia and England will square off against each other to face France. The game in Moscow will begin at 1800GMT.