Joao Pedro fired the mid-table side into a half-time lead with a well-taken 20-yard effort.
However, Jorge Jesus' men kept their composure and turned the game on its head after the interval through Luisao and Eliseu, leaving Jonas to make sure of the points by tapping in Eduardo Salvio's cross 17 minutes from time.
Porto have the chance to reduce the deficit at the top back to four points when they face Boavista on Monday.
Braga made it four league wins on a row by seeing off Nacional 3-1 at the Municipal Stadium.
Another half-time turnaround saw Tiago Rodrigues' opener cancelled out by Pedro Santos, Ruben Micael and Salvador Agra efforts in the second half, moving Braga to within a point of the top three.
Penafiel climbed off the foot of the table with a 1-0 win at Vitoria Setubal, whose third defeat in a row leaves them just three points from safety.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.