Going into Tirreno-Adriatico as a big-name sprinter with no wins to his name and there was talk that Marcel Kittel's season was in crisis.
Kwiatkowski started the individual time trial with an advantage of three seconds over Damiano Caruso and he was quicker than the Italian rider at every time check.
The Polish cyclist eventually finished 24 seconds ahead of Caruso in the overall standings, with Geraint Thomas third, 32 seconds behind his Team Sky teammate.
"The guys were absolutely brilliant today and we went in with a plan that was executed perfectly, they really ramped the pace up on the closing circuit and dropped me off in a great position on the climb".
Kwiatkowski was joined on the podium by Italy's Damiano Caruso of BMC in second and Briton Geraint Thomas of Team Sky in third.
Yates, however, said he had "been feeling good for a few days".
Dennis posted a time of 11 minutes and 14 seconds to pip Jos van Emden (Lotto NL-Jumbo) and Jonathan Castroviejo (Team Sky) to victory in the concluding 10-kilometre time-trial.
"I was nervous about it".