Coach Domenico Tedesco announced his 25-man squad for next month’s tournament on Tuesday with Witsel’s recall a major surprise.
He announced his international retirement last year and his return comes after Tedesco visited the Atletico Madrid defender to persuade him to come back to the team.
Witsel won the last of his 130 caps at the World Cup in Qatar, where Belgium were eliminated in the group stage.
Courtois walked out on the Belgian squad last June when he was not named captain in the wake of Eden Hazard’s retirement, leading to a public falling out with Tedesco.
The Real Madrid goalkeeper was criticised by teammates and has since expressed regret but the rift between him and the coach appears not to have healed.
Soon after the walkout, Courtois suffered a serious knee injury that sidelined him for most of the season, returning for Real Madrid only earlier this month and being in the squad for Saturday’s final against Borussia Dortmund at Wembley.
"Courtois was very clear and honest and early in his communication. The latest information we received is that he is not ready for the European Championships. He knows his body best," said Tedesco at a press conference on Tuesday.
"I have had Axel in my mind for a long time, even during the qualification. It's about quality, Witsel offers a lot of quality.
"He is a key player at Atlético Madrid. I met him, wanted to see him, look into his eyes. We need him, he has experience and can help the young players. Experience in that position is important. We are playing a European Championship, that is no small thing," the coach added.
Club Brugge full-back Maxim De Cuyper is the only uncapped player in the squad. "I have been following Maxim De Cuyper for a long time but never had the chance to select him before, but he now deserves to be in the squad," said Tedesco, who picked 25 players instead of the 26 that UEFA are allowing for each squad.
Belgium's most capped international Jan Vertonghen competes at the age of 37 and with 154 caps. The squad also includes top scorer Romelu Lukaku, who has netted 83 times in 114 appearances for his country.
Belgium Squad
Goalkeepers: Koen Casteels (VfL Wolfsburg), Thomas Kaminski (Luton Town), Matz Sels (Nottingham Forest)
Defenders: Timothy Castagne (Fulham), Maxim De Cuyper (Club Brugge), Zeno Debast (Anderlecht), Wout Faes (Leicester City), Thomas Meunier (Trabzonspor), Jan Vertonghen (Anderlecht), Arthur Theate (Stade Rennais), Axel Witsel (Atletico Madrid)
Midfielders: Yannick Carrasco (Al Shabab), Kevin De Bruyne (Manchester City), Orel Mangala (Olympique Lyonnais), Amadou Onana (Everton), Youri Tielemans (Aston Villa), Arthur Vermeeren (Atletico Madrid), Aster Vranckx (Wolfsburg)
Forwards: Johan Bakayoko (PSV Eindhoven), Charles De Ketelaere (Atalanta), Jeremy Doku (Manchester City), Romelu Lukaku (Roma), Dodi Lukebakio (Sevilla), Lois Openda (RB Leipzig), Leandro Trossard (Arsenal).