Italy had held a shock 10-5 lead at half-time.
England prop Dan Cole was driven over for a try off a close-range line-out to open the scoring.
Italy fly-half Tommaso Allan, who had previously missed two penalties, reduced the deficit with a well-taken drop-goal and when a third penalty came back off the post, wing Giovanbattista Venditti was first to the loose ball for a try that stunned Twickenham.
Allan converted and Italy led an England side, who had won all 16 of their previous Tests, by five points.
But the home side, who have won all 22 of their previous Tests against the Azzurri, opened the second-half with a quick brace from Danny Care and Elliot Daly.
Michele Campagnaro scored a fine individual try to maintain Italian pressure before Jack Nowell (2) and Ben Te'o crossed the Italian whitewash to blow out the final scoreline.