Halfback Sonatane Takulua converted the winning kick after stand-in captain Simone Favaro was penalised.
Italy scored two tries to one and had two more tries disallowed. But they started and finished the second half down a man because of yellow cards. Even so, fullback Edoardo Padovani seemed to give the home side victory with a penalty in the 78th minute.
But Takulua got a chance at his fourth penalty kick and didn't miss, and Tonga earned their first win over Italy since their first match-up, which occurred at the 1999 Rugby World Cup.