The hosts started the game brightly and could have gone ahead in the first minute; a neat chip from Claudio Marchisio fell to Mario Balotelli but the striker was denied by Fernando Muslera.
However, moments later the visitors took the lead. Martin Caceres found some space on the right flank before his low cross found Fernandez, who made no mistake to give the Copa America holders the advantage.
The home side were now dominating possession and came close to equalising twice in minutes, with Balotelli’s long range effort denied by the impressive Muslera, before Dani Osvaldo headed wide following a great cross from Cristian Maggio.
The game then slowed down, but just before half time the hosts went close, as Andrea Pirlo’s cross was met by Osvaldo, and the Roma striker’s header sailed just past the post.
The second half began in end-to-end fashion, with Gianluigi Buffon forced into action to deny Edinson Cavani, before Muslera pulled off another great save to deny substitute Simone Pepe.
As the game went on the hosts were still pushing for the equaliser with Maggio’s drive from the right side of the box flying just past the post.
Then with just over 10 minutes to go, the Italians missed a great opportunity to level the tie, with Muslera producing an outstanding save to deny Federico Balzaretti's hooked effort, after a neat ball from Daniele De Rossi.
The away side managed to hang onto their slender lead despite going down to 10 men, when in the 81st minute Alvaro Pereira saw red for a handball just outside the area.
This result sees Uruguay remain unbeaten in their last 13 matches, while Italy lose their first game since the shock 2-0 defeat to the Republic of Ireland back in June.