A match that lacked in quality, it was A Selecao who struck first in the 54th minute as a cross from Bruno Fernandes floated past La Celeste goalkeeper Sergio Rochet.
The 2014 semifinalists were in control but Uruguay, who must now beat Ghana in their final group stage match, created chances that could have led to them taking a point.
A Selecao wrapped up the victory in second half stoppage time as Fernandes completed his brace from the penalty spot as VAR had ruled Jose Gimenez handled inside the area.
Fernandez then nearly got his hat trick, striking the post with a low shot.
Story of the match
In the third minute, La Celeste had the first chance of the match, as neat interplay saw the ball worked into the Portugal area, leading to Mathias Olivera testing the defence from 20 yards out.
A minute later, Ronaldo looped a pass into the Uruguay box where William Carvalho's high volley was sent wide.
The South Americans came close again 11 minutes in, as Gimenez headed over from a set piece.
Portugal had a set-piece from 25 yards away and while Ronaldo tried his usual pre-kick theatrics, he thumped the shot into La Celeste's wall.
The subsequent corner by Fernandes curled out for a Uruguay throw.
Semifinalists in 2010, the South Americans fashioned the best chance on 33 minutes against the run of play as Bentancur weaved through the defence, but Costa came off his line to deny the midfielder.
Nuno Mendes was forced off four minutes from halftime through injury, replaced by Raphael Guerreiro, and was visibly emotional, but things did improve for A Selecao once the match restarted following an on-field protest from a fan.
Seven minutes after the restart, Portugal did create their best opportunity on the counterattack.
Fernandes sent a ball into the box for Ronaldo, who had a chance to score with his head.
He narrowly avoided connecting with the cross, but it did not matter, as the ball continued on its way into the bottom corner to open the scoring.
Suarez came on in the 73rd minute and that seemed to spark Uruguay, as Gomez rattled the post with a first-time effort from the edge of the box.
Five minutes later, Suarez's free kick was inches away through traffic.
The ball fell to him on the left, he settled it down, but could only find the side netting.
Costa then saved from Giorgian de Arrascaeta's chip as La Celeste continued to press for the equalizer.
Uruguay were made to pay for their wastefulness when Gimenez's trailing hand hit the ball as he was going in for a tackle on Fernandes.
Referee Alireza Faghani was instructed to check the pitch side monitor and awarded the penalty that Fernandes coolly dispatched past Rochet.
Fernandes nearly completed his memorable night late on when his low drive from the edge of the area clattered off the post.
Player of the match: Bruno Fernandes
He had to fight former teammate Ronaldo for the opener, but he won, took and scored the penalty that sealed Portugal's victory.
The 28-year-old was unlucky not to pick up his hat-trick late on.