The BMC rider completed the 34.2km race against the clock from Trento in 40:00. He was followed home by Germany’s Tony Martin (Katusha-Alpecin) who was 14 seconds behind, and Dutchman Tom Dumoulin (Sunweb) who was a further 22 seconds back.
Dennis said he wanted to win a stage of the tour. “I was hoping for Israel to be that stage, but this was a big target as well.
“To come here and repay the team for all their hard work and jump back into the top 10 is a big day for me.”
With regards to the overall standings, he said he just had to hold on for as long as possible.
“There are going to be guys going crazy in the last week. Some guys will be hurting and I will be hurting too.
“It is an unknown for me, riding the mountains in the third week. I am going to take it each day [at a time] and just try and hold onto that top 10 [spot].”
Britain’s Simon Yates (Mitchelton-Scott) consolidated his overall lead when he finished today in 41:37. His overall time is now 65:57:37.
However, defending champion Dumoulin is only 56 seconds behind after his time-trial today. Third is Italian Domenico Pozzovivo (Bahrain-Merida) at 3:11 behind.
Yates said he was extremely happy with how the day went.
“The first half I felt good. I had a good rhythm and I felt OK. I felt like I was going well and I was not losing so much time.”
He said he was really just trying to hold his position.
“In the final 10km I really died a thousand deaths. I thought I would lose a lot more [time] but I managed to hang on, so I’m really happy.”
Chris Froome (Sky) finished fifth in the stage, 35 seconds behind Dennis. This saw him move up to fourth place in the general classification, 3:50 behind the race leader.
Tomorrow’s stage starts at Riva del Gardo and finishes in Iseo after 155km of racing.