Bennett has been in good form so far in the tournament, peaking today with his first Grand Tour stage win in an enthralling finish.
Whatever happens as this year's race unfolds, Dennis has already had the honour of leading the Giro d'Italia, as well as showing - on stage 2, in particular - that he has the wherewithal to fight for the top spot on the GC after the disappointment of an agonising near-miss in the opening time trial in Jerusalem on stage 1.
Dennis (BMC Racing) is 53 seconds behind Yates, who won the young rider classification at last year's Tour de France and becomes the fourth Briton to wear the pink jersey after Mark Cavendish, Sir Bradley Wiggins and David Millar.
Bora-Hansgrohe rider Bennett latched onto Viviani's wheel at the end of the flat 159km ride from Pizzo to Calabria, before bursting past the Italian to grab his first-ever win on a Grand Tour.
'I said to [Chaves] as soon as I caught him he could take the stage because if I had enough time then I'd take the jersey.
Earlier in the Giro Bennett had lost his favoured lead-out man Rudi Selig to illness so Bennett had to do much of the work on his own. Elia Viviani (Italy, Quick-Step Floors) 3. "I looked across the road and everyone was looking at each other". I was glad I kept my cool and it paid off. There were a few close calls, but we made it.
"I knew that was going to happen eventually".
He said: "With so many fast sprinters here, timing was the key and also taking Viviani's wheel".
"It was really disappointing to lose Rudi, but the guys did a great job today and I could see they had real big belief in me".
"I just want to thank the whole team".
He employed interesting tactics to claim the win, preferring to eschew his leadout riders for a spot on the wheel of big favourite, and two-time stage victor already, Elia Viviani.
Their British rider Simon Yates is the new race leader after finishing second in the 163km stage.