“We scored two and we could have scored more,” said Italy coach Roberto Mancini.
“I think the victory is fully deserved. Spain are next but the more you go forward the most difficult it becomes.”
While Italy face Spain at Wembley on Tuesday, defeat means more European Championship quarter-final heartbreak for Belgium, who exited at the same stage in 2016 after defeat by Wales.
I think the victory is fully deserved. Spain are next but the more you go forward the most difficult it becomes
Belgium sorely missed their captain Eden Hazard, ruled out by a hamstring injury, even as Kevin De Bruyne won his race to shake off an ankle injury.
The Manchester City playmaker showed why the medical staff worked around the clock to get him fit by regularly causing Italy problems, but Romelu Lukaku twice was denied by Gianluigi Donnarumma.
“It was a miracle that I played, because there was definitely damage to my ankle,” said De Bruyne.
“We tried everything to win that match.
“Getting eliminated is always a disappointment. Too bad I couldn’t do more.”
Italy’s win came at a cost, with left-back Leonardo Spinazzola out of the tournament with a leg injury.
“Leonardo had a great European championship. Now whoever replaces him will do the same,” said Italy defender Leonardo Bonucci.
Italy had the ball in the net on 13 minutes when Bonucci chested it past Thibaut Courtois from a free-kick, but the goal was disallowed by VAR for an offside against captain Giorgio Chiellini.
Marco Verratti and Youri Tielemans both earned yellow cards for midfield tussles involving the pair.
Verratti was booked for holding Tielemans in a tackle, while the Belgian picked up a yellow card moments later for clattering into the Italian.
Italy broke the deadlock with 31 minutes played.
When Belgium failed to clear, Verratti played the ball into Barella, who stayed on his feet, squeezed past two defenders and drilled across Courtois.
A piece of brilliance on 44 minutes saw Napoli’s Insigne double the Italy lead when he was allowed to dribble to the edge of the area and then curl his shot inside the post.
However, Belgium got back into the game when a rush of blood saw Giovanni Di Lorenzo concede a penalty for using his elbow to brush off Jeremy Doku, filling in for Hazard.
Lukaku stepped up and rifled in the resulting spot-kick to halve the deficit.
With an hour gone, Belgium had the best chance of the second half, coming agonisingly close to an equaliser, when De Bruyne’s cross led to Lukaku having his shot blocked by the thigh of Spinazzola.
Martinez brought on fresh legs up front with Dries Mertens and Nacer Chadli for the final 20 minutes.
There was an almost instant impact when Mertens fed Chadli, whose cross-cum-shot was deflected by Di Lorenzo just out of the reach of Lukaku and Thorgan Hazard.
With time running out, Doku fired over after beating three defenders, while a last-gasp De Bruyne free-kick also failed to beat the Italy defence as the Azzurri clung on.