Ill-timed punctures for Sergio Henao (Team Sky) and Rohan Dennis (BMC Racing) gave Movistar and Orica-Scott cause to keep the pace high but both were back in contact as the final climb began.
Sagan came forward as they hit Paracombe, but when Porte blasted clear nobody could answer his attack save for Izaguirre.
As the Spaniard dropped back, however, Porte was left to solo to the fourth Tour Down Under stage win of his career – the first away from Willunga Hill – and into the ochre jersey.
Izaguirre and Chaves remain 20 and 22 seconds behind, respectively, but defending champion Simon Gerrans is now 58 seconds in arrears with Porte firmly in the driving seat for a first overall win in Adelaide.
Santos Tour Down Under 2016: stage two – result
1) Richie Porte (AUS) – BMC Racing – 3.46.06hrs
2) Gorka Izaguirre (ESP) – Movistar +16”
3) Johan Esteban Chaves (COL) – Orica-Scott – ST
4) Rohan Dennis (AUS) – BMC Racing +19”
5) Nathan Haas (AUS) – Dimension Data – ST
6) Diego Ulissi (ITA) – UAE Abu Dhabi
7) Ruben Guerreiro (POR) – Trek-Segafredo
8) Michael Storer (AUS) – UniSA-Australia
9) Michael Woods (CAN) – Cannondale-Drapac
10) Luis Leon Sanchez (ESP) – Astana
General classification
1) Richie Porte (AUS) – BMC Racing – 7.10.14hrs
2) Gorka Izaguirre (ESP) – Movistar +20”
3) Johan Esteban Chaves (COL) – Orica-Scott +22”
4) Jay McCarthy (AUS) – Tinkoff +24”
5) Nathan Haas (AUS) – Dimension Data +27”
6) Diego Ulissi (ITA) – UAE Abu Dhabi +29”
7) Nathan Earle (AUS) – UniSA-Australia – ST
8) Rohan Dennis (AUS) – BMC Racing
9) Luis Leon Sanchez (ESP) – Astana
10) Rafael Valls (ESP) – Lotto-Soudal
Selected others
41) Geraint Thomas (GBR) – Team Sky +1.07
54) James Shaw (GBR) – Lotto-Soudal +1.34
57) Ben Swift (GBR) – UAE Abu Dhabi +1.41