A 43rd-minute strike from Thorgan Hazard secured the win for Roberto Martinez's team, who survived plenty of pressure from the Portuguese in the second half.
- Dawson: Belgium prove they're more than just goals
- De Bruyne, Hazard subbed off with injuries vs. Portugal
- Euro 2020 on ESPN: Stream LIVE games and replays (U.S. only)
- Euro 2020 on ESPN: Latest news, features, video
But with the finishing touch missing, it was the end of the road for Cristiano Ronaldo and a Portugal team who had triumphed in Paris five years ago.
Ronaldo bows out with five goals from four games, and is currently the tournament's top scorer. Yet it remains to be seen if the 36-year-old will return for a sixth Euros in Germany in 2024 or if the competition's all-time top scorer will bow out of national team duty after the Qatar World Cup next year.
Belgium were among the pre-tournament favourites but this was a stodgy and uninspired display and they will need to raise their game significantly if they are to get past Roberto Mancini's Azzurri who are unbeaten in 31 matches.
Thorgan Hazard's fine goal was their only effort on target in the whole 90 minutes and there was little invention or flair from their midfield.
"In the first half we were playing high and putting pressure on Portugal, but looking at that second half, we are lucky to win," said Belgium defender Thomas Vermaelen.
Portugal began brightly and Diogo Jota wasted a great chance in the sixth minute, dragging his shot wide after Renato Sanches had broken from midfield and found him in a promising position on the left.
Ronaldo then tested Belgium keeper Thibaut Courtois with a low-struck free kick as Fernando Santos's team continued to apply pressure.
But Belgium grew into the game with De Bruyne increasingly influential and they grabbed the lead three minutes before the interval.
Patricio stepped to the right in anticipation of a near post shot but was unable to get back across and was beaten by an effort that flew in centrally.
"In these kinds of games you have to grab your chances with both hands and voila, the goalkeeper expected me to choose the other corner, so the ball went in," said the scorer.
Belgium suffered a blow when De Bruyne limped off with an injury three minutes after the break and Santos sought to breathe life into his side's attack by introducing Bruno Fernandes and Joao Felix from the bench.
Ronaldo, cutting in from the right, did well to find Jota in the box but again the forward's effort was off target as Belgium struggled to contain their opponents.
Belgium's attempts to counter were increasingly rare and Portugal turned up the heat in the final 10 minutes as they searched desperately for an equaliser.
Deep in added time, Portugal created one final opportunity but Felix's drive flashed just wide of Courtois's right-hand post.
"I didn't have a lot of work to do in the previous three games, but I knew that wasn't going to be the case against Portugal," said Courtois.
"I am proud of my team mates; they defended very well. Italy will be difficult too, but we have proved today that we are ready for it," he said.
Eden Hazard, who has struggled with injuries over the past two seasons, went off with what looked like a hamstring strain three minutes from the end.
Belgium will face Italy, who beat Austria 2-1 on Saturday, in Munich on July 2.