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.
Know more about Sport360 Application