De Bruyne, making his 79th international appearance, laid on his 37th assist with a typically incisive pass into Romelu Lukaku, who twisted and turned his way past Ondrej Celustka before finding the back of the net after the hour.
The goal hauled the Red Devils level on the night after the hosts had taken the lead through Lukas Provod’s stinging low drive ten minutes beforehand.
And De Bruyne could have snatched all three points with the game approaching the 70-minute mark, latching onto a ball in behind the defence, shimmying onto his right foot before smashing a shot against the foot of the post.
The result means Belgium sit second in Group E, level with the Czech Republic on four points after two matches.
Portugal also missed out on the chance to maintain a 100% start to their campaign in Group A, squandering a two-goal lead to draw 2-2 with ten-man Serbia.
Bernardo could have grabbed an assist inside eight minutes, cutting the ball back for Cristiano Ronaldo, but their record goalscorer blazed the ball over the bar from a favourable position.
CITY+ | Watch full-match replays of every city game
However, our midfielder didn’t have to wait long to make a difference, whipping an inviting cross into the back post from the right, which was met by Diogo Jota.
The Liverpool man made no mistake, heading home convincingly to put the European champions ahead inside 11 minutes.
And Jota doubled Portugal’s lead with ten minutes of the first half to play, glancing Cedric’s vicious cross into the back of the net off the far post to put the visitors in control.
However, second half strikes from Aleksandar Mitrovic and Filip Kostic earned Serbia a share of the spoils, despite the hosts having Nikola Milenkovic sent off for a foul on Porto’s Danilo Pereira in stoppage time.
Portugal could have stolen all three points in the final moments when Ronaldo’s poked effort towards goal which was adjudged to have been cleared off the line, much to the dismay of the forward.
Both sides have picked up a win and a draw from their opening two matches, sitting first and second respectively.
City defenders Ruben Dias and Joao Cancelo also featured for the visitors, with Dias playing the full 90 minutes while Cancelo was substituted in the 72nd minute.