The Australian-born Italian kicked six penalty goals and converted Tommaso D'Apice's 50th minute try to overturn a half-time deficit and hand the visitors victory in front of 12,220 fans.
"It was a good win," Italy coach Jacques Brunel said. "Canada is a tough team and they showed the strong spirit they had at the World Cup. We knew it would be a difficult game so we are happy with the result."
Defeat for the Canadians was hard to take, given they had beaten the United States 28-25 last week.
Full-back James Pritchard had 11 points from three penalty goals and a conversion from Conor Trainor's first-half try.
"We played into their hands by having one off runners a lot of times. That got them into the game," Canada coach Kieran Crowley said.
"It was pretty disappointing from our perspective. We didn't execute what we went out to do."
Italy next play the US on June 23 while the Canadians entertain Georgia.