With Porte the stronger time triallist, but Yates holding a 19 second advantage after winning stage four, it looked likely to be a tight race for overall victory.
However the BMC Racing rider had already overhauled Yates by the intermediate time check midway along the course where he was 33 seconds faster.
The difference between the two was less stark over the generally downhill second half of the course, but Porte was able to extend his lead by a little more, eventually crossing the line in a time 48 seconds faster than Yates, taking the overall win by 21 seconds.
Meanwhile the stage win went to Slovenian time trial champion Primoz Roglic, who produced a time eight seconds faster than Porte, which also moved him onto the podium in the general classification.
The early stages of the hilly final time trial around Lausanne saw a quick succession of changes at the top of the leaderboard as Victor Campanaerts (LottoNL-Jumbo), Stefan Küng (BMC Racing), Johan Le Bon (FDJ), and Lennard Kamna (Team Sunweb) all set fastest times in quick succession.
However the first man to spend any length of time in the hotseat was Andrey Amador (Movistar), with the Costa Rican setting a time of 25-33 over the 18.3km course.
Chris Froome (Team Sky) was the next big name rider to cross the line, setting what was then the third best time, 12 seconds back from Amador.
However it was Tejay Van Garderen (BMC Racing) who was looking in good form ahead of the Giro d’Italia (which features two prominent time trials) going faster than Amador at the intermediate time check at the top of the course’s single climb, and edging out Amador by a single second at the finish.
By the time Van Garderen had finished, both Porte and Yates, the two real contenders for the overall title, had both rolled off the start list.
Yates had an advantage of 19 seconds going into the stage, but that had disappeared entirely by the intermediate checkpoint, where Porte set the fastest time of the day, 33 seconds faster than Yates.
As Yates and Porte settled into the second half of the time trial, Roglic was crossing the line, setting a scintillating 24-58, knocking an astonishing 34 seconds of Van Garderen’s time.
Always a strong time triallist, Porte looked the most likely to challenge Roglic’s time, but eventually had to settle for second with a time of 25-06, eight seconds slower than Roglic.
Tour de Romandie 2017, stage five: Lausanne to Lausanne (18.3km, ITT)
1. Primoz Roglic (Slo) LottoNL-Jumbo, in 24-58
2. Richie Porte (Aus) BMC Racing, at 8 secs
3. Tejay Van Garderen (USA) BMC Racing, at 34 secs
4. Ion Izaguirre (Esp) Bahrain-Merida, at 34 secs
5. Fabio Felline (Ita) Trek-Segafredo, at 34 secs
6. Andrey Amador (CRc) Movistar, at 35 secs
7. Jonathan Castroviejo (Esp) Movistar, at 41 secs
8. Lennard Kämna (Ger) Team Sunweb, at 42 secs
9. Chris Froome (GBr) Team Sky, at 46 secs
10. Ilnur Zakarin (Rus) Katusha-Alpecin, at 46 secs
Final General Classification
1. Richie Porte (Aus) BMC Racing, in 17-16-00
2. Simon Yates (GBr) Orica-Scott, at 21 secs
3. Primoz Roglic (Slo) LottoNL-Jumbo, at 26 secs
4. Fabio Felline (Ita) Trek-Segafredo, at 51 secs
5. Ion Izaguirre (Esp) Bahrain-Merida, at 1-03
6. Tejay Van Garderen (USA) BMC Racing, at 1-16
7. Wilco Kelderman (Ned) Team Sunweb, at 1-21
8. Bob Jungels (Lux) Quick-Step Floors, at 1-22
9. Jesus Herrada (Esp) Movistar, at 1-22
10. Emanuel Buchmann (Ger) Bora-Hansgrohe, at 1-24
18. Chris Froome (GBr) Team Sky, at 1-55