The victory has sealed the Azzurri’s status as tournament favourites.
First-half goals to Nicolò Barella and Lorenzo Insigne helped Italy to a 2-0 lead, before Inter Milan striker Romelu Lukaku pulled one back for Belgium in first-half stoppage time.
Both sides had chances to score after the break in a breathless match, but Italy’s defence held firm to extend their record unbeaten run to 32 games.
The Azzurri will face Spain at Wembley on Tuesday for a place in the final after Luis Enrique’s side squeezed past Switzerland 3-1 in a penalty shootout after their battling opponents clung to a 1-1 draw after extra time despite going down to 10 men.
Italy started strongly when Leonardo Bonucci bundled the ball into the net after 13 minutes from a free-kick, but his celebrations were cut short when it was chalked off for offside.
Italy’s Gianluigi Donnarumma then produced a superb one-handed save to deny midfielder Kevin De Bruyne, who was fit enough to start after picking up an injury in Belgium’s last game, before the goalkeeper tipped a Lukaku effort wide.
The Azzurri went in front when Barella scythed his way through the Belgian defence before slamming the ball past Thibaut Courtois in the 31st minute.
It was Italy’s 10th goal of the tournament, their most at a European Championship.
Italy looked set to end the half on a high when Insigne’s outstanding curler doubled their lead, but Belgium cut the deficit three minutes later when Giovanni Di Lorenzo barged over Jeremy Doku in the box and Lukaku converted the penalty.
Leonardo Spinazzola performed a superb goal-line clearance to deny Lukaku an equaliser after the break.
Spinazzola later left the field on a stretcher after suffering an achilles injury when he slipped on the turf, the only blemish on what was otherwise a perfect night for Italy as they chase a first European Championships title since 1968.
The lively Doku caused problems for the Azzurri defence all night and he threatened a late equaliser when he cut in from the wing to lash a shot at goal, but it flew inches over the bar.
After the game, Mancini hailed his side for their gutsy win.
“We deserved to win,” he said.
“The boys were extraordinary in the game.
“We only suffered in the last 10 minutes because we were really tired, we had spent a lot.
“But we could have scored a few more goals.”
Mancini said his players deserved to savour the triumph before thinking about Tuesday’s semifinal match.
“Let’s enjoy this victory, then we’ll think about it,” he said.
“Congratulations to my boys, they were very good.”
England and Denmark will be the other two teams in the semifinals and will go toe-to-toe to make it to the grand final of the coveted tournament.