Porto took advantage of the Lisbon derby being postponed to move within one point of Primeira Liga leaders Benfica on Sunday.
Benfica's clash with Sporting Lisbon was eagerly anticipated but the game at Estadio da Luz never even got started after parts of the stadium roof fell off in high winds.
Insulation material began falling from the roof prior to kick-off as winds battered the Portuguese capital.
After attempts to make the stadium safe for players and spectators failed, the contest would be postponed on safety grounds.
That allowed Porto to close the gap on Benfica with a 3-0 home win over Pacos de Ferreira.
Ricardo Quaresma got the all-important first goal just before half-time from the penalty spot.
But from there, Paulo Fonseca's side were still forced to work hard for their triumph, not sealing the result until two goals in the last three minutes as first Jackson Martinez netted in the 87th minute and then substitute Ricardo Pereira added a third goal in stoppage time.
Sporting Braga climbed to sixth with a 4-1 win over a 10-man Gil Vicente, who have not won a league game since November 3.
Rafa Silva scored in the eighth and 15th minutes to give the hosts the early initiative.
Diogo Viana pulled a goal back just after the hour mark but Colombian Felipe Pardo quickly restored Braga's two-goal lead.
Cesar Peixoto was then sent off with 21 minutes to play before Pardo grabbed his second, and Braga's fourth.
Other results on Sunday saw Oumar Diakhite's 89th-minute leveller give Olhanense a 1-1 home draw against Maritimo, while Arouca also left it late to snatch a point, with Tunisia international Lassad Nouioui scoring an injury-time equaliser in a 1-1 draw at Rio Ave.