The City trio all featured for the full 90 minutes as a brace from Bruno Fernandes clinched what was a fiercely-contested clash in Doha.
Portugal struck first on 57 minutes.
Initially it looked as though Cristiano Ronaldo had headed in the all-important opener but FIFA later officially credited the goal to Fernandes who had pumped in an arcing cross.
And the Manchester United midfielder then confirmed the win for the 2016 European champions with an injury time penalty awarded after a VAR check for handball in the Uruguay box.
Bernardo, Cancelo and Dias all played important roles as Fernando Santos’ side followed up their opening 3-2 Group H win over Ghana.
It proved a tight, cagey affair in the Qatari capital with chances at a premium in a slow burn of a first half before Portugal broke the deadlock 12 minutes after the restart.
It initially appeared as though Ronaldo had deftly headed home a 57th minute Bruno Fernandes cross – but the effort was subsequently awarded to Fernandes.
The drama didn’t end there. Uruguay substitute Maxi Gomez smacked the post with an instinctive first time effort before fellow replacement Luis Suarez hit the side netting with a close-range snapshot.
And in injury time, Portugal were awarded a penalty after a VAR check adjudged a handball in the box by Uruguay defender Jose Gimenez.
After a lengthy delay as Uruguay voiced their displeasure, Fernandes fired home from the spot to seal the win.
Portugal top the group with six points from two games, Ghana are second with three while South Korea and Uruguay have one apiece
The final group games on Friday sees Portugal tackle South Korea while Uruguay will face Ghana to determine who joins the Portuguese in the knockout stages.