Yates, 25, limited the damage on defending champion Tom Dumoulin, who remains 56sec behind the Briton going into the crucial, final week of racing.
Mitchelton-Scott rider Yates said he was satisfied with his day after finishing the 34.2km stage from Trento to Rovereto in 22nd position.
“I’m very happy even if I have to be careful in the stages to come,” he added of the race which finishes in Rome in five days.
And the Team Sky rider warned the final week could see some surprises despite being 3min 50sec off compatriot Yates who looks increasingly difficult to beat.
“I think it’s all to race for. Simon has been untouchable so far, so it will be interesting to see how he goes after the time-trial and he goes in this last block, but I can’t see anyone taking that jersey off his shoulders,” said the 33-year-old.
“Still a lot could happen in this race. The parcours leads to some very aggressive racing, so let’s see.”
BMC rider Dennis is now sixth overall, five minutes behind Yates.
“This is a big day for me to jump back into the top ten,” said the Australian.
“I really wanted to come here to win a stage.
“I just have to hold on for as long as possible. There’s going to be guys trying to do crazy things in the last week.”
Dennis, 27, finished 14sec ahead of Germany’s Tony Martin of Katusha-Alpecin with Dumoulin of Team Sunweb third at 22sec off the pace.
It was the first Giro stage win for the rider from Adelaide who finished second in the opening stage time-trial in Jerusalem behind Dumoulin, and adds to his stage wins on the Tour de France and Vuelta a Espana.
Overall leader Yates lost less time to second-placed defending champion Dumoulin than many observers had predicted.
“I felt good in the first half. I had a good rhythm,” said Yates.
“I was trying to hold on to my position. But I died in the final 10 kilometres.
“Being in the lead after the time-trial changes my tactics for the remaining stages.
“Unfortunately for the fans, I might be more defensive. I’d like to have a bigger gap but I’m very satisfied with where I stand now.”
Italian climber Fabio Aru, who had looked out of the race after losing 20 minutes on Sunday, created the big surprise of the day as he achieved the best time-trial of his career finishing just two seconds behind Froome.
But France’s Thibaut Pinot lost more than three minutes on the stage winner to drop to fifth overall, 1min 8sec off Italy’s Domenico Pozzovivo who occupies the final podium position.
“I wasn’t good, I had no power. From the start I felt I wasn’t great,” said Pinot who posted the 66th best time.
Wednesday’s 17th stage over 155km from Riva del Garda to Iseo, east of Milan, should suit the sprinters.
The Colombian slid down the general classification after falling behind on the first climb of Stage 10 last Tuesday.
He had earlier won the Mount Etna stage (Stage 6) and was sitting pretty in second place overall behind Mitchelton-Scott teammate Simon Yates – the current race leader.
The 25-minute loss, however, put him down in 39th. The next day he lost another five minutes as his hopes of victory were ended.
The disastrous 10th stage followed the first full rest day and may have been part of the problem. Some riders do not perform well after a rest day.
A week has passed but Chaves is still not sure of the reason behind his woes, and he has yet to undergo deep medical checks to try to find out what happened.
“That will take time for sure,” he told VeloNews. “There is no one-word answer from one day to the other or one night, now we just need to fight for the pink and this is it.”
But Tour de France champion Chris Froome, who won on Saturday’s Monte Zoncolan summit finish, lost more time on the 176km Dolomites stage from Tolmezzo to Sappada, slipping to seventh overall and nearly five minutes behind his countryman.
Mitchelton-Scott’s Yates launched his attack 17km from the finish line on the penultimate climb and held on to add to his previous victories on the ninth stage at Gran Sasso and 11th at Osimo.
He crossed the line 41 seconds ahead of a group led by Colombian Miguel Angel Lopez of the Astana Pro Team, with Team Sunweb’s Tom Dumoulin of the Netherlands in third.
“My attack was a little bit on instinct,” explained Yates. “I saw a little gap. I gave everything the second time to get away. It’s fantastic.”
Defending champion Dumoulin is second overall but drops to 2min 11sec behind Yates going into the final week with the race finishing in Rome next Sunday.
📸 Best pics from Stage 15, Tolmezzo - Sappada. Which one do you like the most? | 📸 Le migliori immagini della Tappa 15, Tolmezzo - Sappada. Qual è la tua preferita? | 📸 Las mejores imágenes de la Etapa 15, Tolmezzo - Sappada. ¿Cual prefieres? https://t.co/haOAnSRKxj#Giro101 pic.twitter.com/p0rJUQGEzU— Giro d'Italia (@giroditalia) 20 May 2018
Monday’s final rest day will be followed by a time-trial at Rovereto on Tuesday where Dutchman Dumoulin is expected to gain time.
“I feel emotional after today. I’ve been fighting since Israel to build a good lead,” said Yates.
“I’m happy with the gap I have now but it’s far from over. It could vanish in 35 kilometres.”
Italy’s Domenico Pozzovivo finished fourth and is third overall, 2min 28sec behind Yates, with France’s Thibaut Pinot of Groupama fourth overall at 2min 37sec.
Four-time Tour de France winner Froome struggled on the fourth and final climb in the Dolomites losing a minute and a half to spoil his 33rd birthday celebrations.
Froome, helped by teammate Wout Poels who had already proved so valuable on Monte Zoncolan, tried to claw back time on the overall leaders but was unable to match the change of the pace on the ascent to Costalissoio.
The reigning Vuelta a Espana champion dropped from fifth to seventh overall and is now 4min 52sec behind 25-year-old ‘King of the Mountains’ Yates.
But will Yates’ advantage be enough in Tuesday’s time trial? “I really don’t know,” he said.
France’s Pinot believes the Englishman has done the essential though.
“Yates is untouchable unless he has a major failure,” said Pinot.
“It was better than yesterday at the Zoncolan,” he added. “There are days like this … Today, the slopes corresponded more to me.”
But Pinot lamented a damaging battle between Lopez and Ecuadorian Richard Carapaz for the best young rider’s white jersey.
“There was the squabble between Carapaz and Lopez for the white jersey, they were eye-balling each other, they condemned our little group a little,” said Pinot, who is fourth overall just behind Pozzovivo.
“Maybe we could have caught up with Yates and especially taken time on the others,” added the Frenchman.