Simon Yates (Mitchelton-Scott) edged closer towards winning the overall title, slightly increasing his small lead over Alejandro Valverde to 33 seconds after the stage.
Dennis (BMC) won the stage in style, finishing a full 50 seconds faster than team-mate Joseph Rosskopf and third-placed Jonathan Castroviejo (Movistar).
“I tried to control the start and the finish and push in the middle section and in the end it worked out perfectly, dennis said. I knew I was on a good ride just looking at my power. But I didn’t know what Kwiatkowski and the other guys could do.
"All I knew was Castroviejo’s time and he’s a pretty good indicator of whether you’re doing well or not. To be honest, I think the performance of the day is for Joey Rosskopf (2nd). He’s the best teammate and I’m very happy for him."
Yates was 13th on the day, one minute and 28 seconds slower than Dennis.
The best performer of the general classification hopefuls was Steven Kruijswijk (LottoNL-Jumbo) who finished third, 51 seconds down from Dennis, enabling him to leapfrog Nairo Quintana (Movistar) into third place overall, 52 seconds behind Yates.
“I did a really good ride, I was really well in the very beginning and on the hard climbs I had the perfect pacing strategy, but in the final, I was just dying like everybody else and it wasn’t nice," Yates said.
“Thirty-three seconds over Valverde is not that much, I had much more of an advantage in the Giro, over a minute and we all know how that finished in the end, but there’s still a long way to here and we’ll see how tomorrow goes.
“Kruijswijk has been strong every day so far and slowly getting better with each stage. He’s also normally good in the third week of a Grand Tour and a real diesel engine. He’s a good guy and now he’s up to third we’ll have to be very wary of him.”
2016 Vuelta champion Quintana had seen the gap behind Yates steadily increase in the previous two mountain stages, and he suffered further in the time trial, coming 42 seconds after Yates on the day and dropping one minute 15 seconds behind him overall into fourth.
Stage winner Dennis will not be continuing in the race, however, confirming an expected withdrawal from the Vuelta after the time trial in order to prepare for the world championships in Innsbruck, Austria.
The Vuelta returns to the mountains on Wednesday with a 157km route from Getxo to Balcon de Bizkaia in the Basque country, the first of three summit finishes in the space of four days before the race concludes on Sunday in Madrid.