A 78th-minute penalty won and converted by Evandro ended an incredible 81-match run that stretched back to October 2008 when Porto lost 3-2 to Leixoes.
The Portuguese champions, who squandered a 2-0 lead when they were held to a 2-2 draw by Eintracht Frankfurt in the Europa League on Thursday, were jeered off the field by furious fans and coach Paulo Fonseca said he would now ponder his future.
"I'm going to talk to the president," said the 40-year-old in a touchline interview on television.
It is the first season in charge for Fonseca.
Porto, who have won the league for the last three seasons, are third on 42 points, four behind leaders and arch-rivals Benfica who host Vitoria Guimaraes on Monday.
To add to Porto's misery, defender Eliaquim Mangala was sent off for the foul which caused the penalty.