The Azzurri's last victory came against Canada at the Rugby World Cup in September 2019, and the win over the Uruguayans ended a 16-match losing run since then.
New Italy head coach Kieran Crowley suffered defeat in his opening two games against New Zealand and Argentina, but his side held the lead from the 12th minute onwards in Parma after winger Bruno skipped inside two defenders to dot down.
A Federico Favaro penalty kept Uruguay in touch, but scrumhalf Tomas Inciarte was shown a yellow card in the 32nd minute and Paolo Garbisi's boot soon added another three points to give the hosts a 10-3 halftime lead.
Replacement hooker Faiva charged over the line two minutes after coming off the bench to mark his debut in style, but Uruguay reduced the deficit when Santiago Civetta burrowed over the line on the hour mark.
The two sides will meet again at the Rugby World Cup in 2023, where they share a pool with the All Blacks, France and an African qualifier.