Roglic, im vergangenen Jahr Gewinner des Zeitfahrens auf der neunten Giro-Etappe, unterstrich in Lausanne seine Qualitäten im Kampf gegen die Uhr.
Etwa bei Halbzeit des Zeitfahrens lag Porte noch vorn, doch Roglic nahm seinem Rivalen auf der zweiten Hälfte wertvolle Zeit ab und war am Ende in 24:58 Minuten acht Sekunden schneller als der Aussie.
Yates hatte am Samstag auf der Königsetappe über 163,5 bergige Kilometer von Domdidier nach Leysin zeitgleich vor Porte triumphiert und damit auch das Gelbe Trikot des Spitzenreiters vom Italiener Fabio Felline übernommen.
Tour-de-France-Sieger Christopher Froome wurde am letzten Anstieg abgehängt, belegte im Zeitfahren in 25:44 Minuten Platz neun.