It was Domenico Pozzovivo who took stage honours in Fierozzo Val Dei Mocheni, with the AG2R LA Mondiale rider pouncing on the final climb to forge a slim margin.
Mikel Landa (Astan) and Porte crossed the line five seconds later, along with Romain Bardet (AG2R La Mondiale) and Damiano Cunego (Nippo-Vini Fantini).
"We worked efficiently the day before but it didn’t succeed," Pozzovivo said of Stage 2 that was won by Porte.
"Today, our tactic was perfect and I warmly thank Hubert Dupont and Hugo Houled in the breakaway. I knew that I could play my card. I took advantage of Romain Bardet’s attack because I hadn’t had to make efforts. I finished the amazing job of the whole team. Now, my goal is Liege-Bastogne-Liege and the the Giro. I hadn’t won two races in the same season since 2012. I hope that my form will last."
Porte's lead over Landa shrunk by two seconds, with the Australian now holding a 22 second advantage with one stage remaining.
Sky sport director Dario Cioni said the team will do everything it can for Porte to seal the victory in Friday's 161km final stage.
"We're one step closer now heading into the final stage," said Cioni. "We know any stage can be difficult depend on what the other teams do. It's a different type of stage and one that will suit a bigger number of riders. We want to bring home the victory and we'll do everything we can to finish it off."
Porte, who is building towards the Giro d'Italia, has exhibited strong form throughout the opening stages of the season, winning Paris-Nice and Volta a Catalunya in addition to taking six individual victories.
Stage 3: 183.8km, Ala - Fierozzo Val Dei Mocheni
1 Domenico Pozzovivo (ITA) AG2R La Mondiale 4hr 54min 12sec
2 Mikel Landa (ESP) Astana 0:00:05
3 Richie Porte (AUS) Sky
4 Romain Bardet (FRA) AG2R La Mondiale
5 Damiano Cunego (ITA) Nippo-Vini Fantini
6 Rodolfo Torres (COL) Colombia 0:00:13
7 Dario Cataldo (ITA) Astana 0:00:15
8 Diego Rosa (ITA) Astana
9 Louis Meintjes (RSA) MTN-Qhubeka 0:00:17
10 Leopold Konig (CZE) Sky
1 Richie Porte (AUS) Sky 9hr 44min 45sec
2 Mikel Landa (ESP) Astana 0:00:22
3 Leopold Konig (CZE) Sky 0:00:58
4 Dario Cataldo (ITA) Astana 0:01:11
5 Damiano Cunego (ITA) Nippo - Vini Fantini 0:01:13
6 José Mendes (POR) Bora-Argon 18 0:01:15
7 Domenico Pozzovivo (ITA) AG2R La Mondiale 0:01:32
8 Louis Meintjes (RSA) MTN-Qhubeka 0:01:33
9 Romain Bardet (FRA) AG2R La Mondiale 0:01:34
10 Edoardo Zardini (ITA) Bardiani CSF 0:01:37