Porto dropped points for only the second time this season as they were held to a 1-1 draw by Belenenses on Saturday.
The defending champions went into the game on the back of three straight league wins, but could not maintain that strong run as the hosts pulled off a surprise result.
Eliaquim Mangala opened the scoring for Porto after 30 minutes as he headed in Danilo's left-wing free-kick.
However, the visitors' lead lasted a mere three minutes as striker Joao Pedro levelled things up after a mistake from Mangala.
Porto created a string of chances in the second half but they were unable to reclaim the lead and were left to settle for a share of the spoils.
Paulo Fonseca's men are now just three points clear at the top of the table, after nearest challengers Sporting Lisbon came from behind to beat Maritimo 3-2.
Former Sevilla winger Diego Capel gave Sporting the lead with his first goal of the season after 28 minutes, but defender Ruben Ferreira equalised for Maritimo six minutes later.
And the visitors looked to be on their way to all three points just before half-time as Cape Verde international Heldon scored from the spot after Brazilian defender Jefferson had fouled Sami in the area.
But two second-half goals from Sporting turned the game around once more, the first coming 22 minutes into the half when substitute Islam Slimani headed home.
The comeback was completed 14 minutes from time, Adrien Silva scoring the game's second penalty, which was awarded as Joao Diogo was sent-off for a second bookable offence following a poor challenge on striker Fredy Montero.comments