It initially looked as though Cristiano Ronaldo had drawn level with Portugal's record World Cup goalscorer Eusebio when he rose to try and head in Fernandes' 54th-minute cross.
But replays showed that the Portugal captain, who has scored eight World Cup goals, did not get a touch on it and the goal was given to Fernandes as his team claimed a second successive Group H win.
Fernandes' goal, followed by a penalty in added time, proved enough to turn a tight and tense contest Portugal's way and put them in pole position to top their group ahead of facing South Korea on Friday.
Uruguay, meanwhile, will need to beat Ghana in their quest for a place in the round of 16.
Portugal showed three changes from the side that beat opening opponents Ghana, with Nuno Mendes, Pepe and William Carvalho all handed starts.
Luis Suarez, meanwhile, was among the substitutes for Uruguay, with Edinson Cavani called into a starting XI that also saw roles for Guillermo Varela and Sebastian Coates.
Uruguay's Rodrigo Bentancur collected a yellow card after just six minutes following a foul on Ruben Dias, and Portugal dominated the early exchanges.
Fernandes drifted a shot wide, then Ronaldo saw a free-kick deflected for a corner, but Uruguay should have gone ahead 12 minutes before half-time.
Bentancur tormented Portugal's defence after breaking clear from just inside his own half, but just when it looked as though he had done all the hard work with only Diogo Costa to beat, he shot straight at the goalkeeper.
Mathias Olivera became the second Uruguay player to be booked, while Portugal's Ruben Neves was also cautioned during an opening 45 minutes that finished 0-0.
But there was also a major blow for Portugal as Mendes was forced off injured, leaving the field in tears and being replaced by Raphael Guerreiro just before half-time.
Olivera was fortunate to avoid a second yellow card following a reckless foul, and Wolves captain Neves needed treatment after a challenge by Uruguay's Matias Vecino.
The deadlock was broken nine minutes into the second period when Fernandes' cross eluded Ronaldo and Uruguay goalkeeper Sergio Rochet.
It was no less than Portugal deserved, and they confirmed all three points when Fernandes sent Rochet the wrong way from the penalty spot after Jose Maria Gimenez hand-balled.