Porto won their third consecutive Liga title and completed an unbeaten season in the process after beating Pacos Ferreira 2-0 on Sunday.
They beat bitter rivals Benfica last weekend to leapfrog the Lisbon outfit in the standings and completed the job tonight with a win against their near neighbours.
Lucho Gonzalez opened the scoring with a 23rd-minute penalty after Ricardo was sent off and Jackson Martinez added another 11 minutes after the break.
Danilo was sent off for a second yellow card just four minutes later to even up the numbers but Vmtor Pereira's men held on to take the glory.
Benfica claimed a 3-1 win over Moreirense but it will have been little consolation to Jorge Jesus' men after a disastrous week.
The Eagles were also unbeaten going into last weekend's top-of-the-table clash but conceded in stoppage time to lose 2-1 and suffered the same fate on Wednesday night in the Europa League final against Chelsea.
Benfica can still salvage some silverware this month though as they face Vitoria Guimaraes in the Portuguese Cup final next weekend.
The result also saw Moreirense relegated as none of the sides battling to avoid the drop could claim wins.
Franco Vinicius had put Augusto Inacio's men ahead just before the break but a second-half goal from Oscar Cardozo plus a brace from Rodrigo Lima, including a stoppage-time penalty, saw Benfica claim the win. Paulinho was sent off for the visitors in added time.
Beira Mar joined Moreirense in the Segunda Liga as they lost 4-1 to Sporting Lisbon.
Adrien Silva opened the scoring before a quickfire from Ricky van Wolfswinkel in his last appearance for the club before moving to Norwich put Sporting 3-0 up at the break. Ribeiro gave Beira Mar hope but Adrien Silva's second a minute from time sealed their fate.
In Barcelos, Fernando Sandro Cunha gave Gil Vicente a 25th-minute lead against Estoril but that was cancelled out by Steven de Sousa Vitoria 10 minutes after the break.
Goalkeeper Vitor Murta was then sent off for the home side before Vitoria netted his second from the penalty spot and Luis Leal completed the scoring in a 3-1 win for the visitors.
Ladji Keita grabbed the winner as Nacional beat Academica 2-1.
Daniel Candeias opened the scoring but Arnaldo Edinho's penalty three minutes after the break levelled matters before Keita struck with 27 minutes remaining.
Andrade Ze Luis' 32nd-minute goal was enough to hand Braga a 1-0 win over Vitoria Setubal while Bruno Braga scored the only goal as Rio Ave beat Guimaraes by the same score.
In the day's other game Olhanense and Maritimo drew 0-0.