Jackson Martinez made amends for a missed penalty with a brace as Porto came from behind to beat Rio Ave 2-1 in Liga Sagres on Saturday.
Martinez's 33rd-minute spot-kick was blocked by goalkeeper Jan Obliak before Bruno Braga put Rio Ave in front with his first goal of the season five minutes later.
Martinez had another opportunity from the spot two minutes into first-half stoppage time and made no mistake second time around to level proceedings.
The Colombian forward handed Porto the lead in the 77th minute, with his 22nd goal of the campaign securing the visitors' 16th win in 20 matches.
Meanwhile, Sporting Braga strengthened their hold on fourth place after accounting for Guimaraes 3-2.
Two goals from Eder and another from Paulo Vinicius sealed the result for Braga, who lost Nigerian defender Uwa Echiejile to a second yellow card in stoppage time.
Elsewhere, Miguel Lourenco's 12th-minute goal proved the difference as Vitoria Setubal overcame Beira-Mar 1-0.